IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Reports Oracle Discussion :

Trigger insert if not exist


Sujet :

Reports Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 40
    Par défaut Trigger insert if not exist
    Bonjour,
    Je suis venu parce que j'ai un peu de problème dans mon trigger INSERT, quand je le compile ily a une erreur
    [Error] PLS-00204 (5: 8): PLS-00204: fonction ou pseudo-colonne 'EXISTS' peut être utilisée uniquem. ds instruc. SQL
    Voici le script en question

    /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR REPLACE TRIGGER "D_MANDAT" AFTER
    insert ON "MANDAT" FOR EACH ROW
    BEGIN 
    IF NOT EXISTS (SELECT 1 FROM tmp_mandat WHERE mand_num_info = NEW.mand_num_info) THEN
    INSERT INTO TMP_MANDAT
            (EXERCICE,ACTIVITE,INDICATEUR,SOA,COMMUNE,CATEGORIE,FINANCEMENT,COMPTE,MAND_SITE,MAND_NUM_INFO,MAND_MONTANT,MAND_TAXE,MAND_NUMERO_BE, MAND_NUMERO_MAND, MAND_NUMERO_BMAND, MAND_NUMERO_LIQ, MAND_DATE_LIQ,MAND_DATE_ORD,MAND_CODE_TIERS,MAND_LIBELLE,MAND_MODE_PAIE,TYPE_ENG,TYPE_MAND,MAND_ORDONNATEUR, MAND_GEST_ACT,MAND_CDE,MAND_VISA_TEF, MAND_DATE_TEF,MAND_OBJET,TYPE_DEP,CODE_ACT,DATE_RECUP,OP_NUM,EXP_DATE)
            VALUES 
            (:new.EXERCICE,:new.ACTIVITE,:new.INDICATEUR,:new.SOA,:new.COMMUNE,:new.CATEGORIE,:new.FINANCEMENT,:new.COMPTE,:new.MAND_SITE,:new.MAND_NUM_INFO,:new.MAND_MONTANT,:new.MAND_TAXE,:new.MAND_NUMERO_BE, :new.MAND_NUMERO_MAND, :new.MAND_NUMERO_BMAND, :new.MAND_NUMERO_LIQ, :new.MAND_DATE_LIQ,:new.MAND_DATE_ORD,:new.MAND_CODE_TIERS,:new.MAND_LIBELLE,:new.MAND_MODE_PAIE,:new.TYPE_ENG,:new.TYPE_MAND,:new.MAND_ORDONNATEUR, :new.MAND_GEST_ACT,:new.MAND_CDE,:new.MAND_VISA_TEF, :new.MAND_DATE_TEF,:new.MAND_OBJET,:new.TYPE_DEP,:new.CODE_ACT,:new.DATE_RECUP,:new.OP_NUM,:new.EXP_DATE);
    end if ;
    END;

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Il suffit de déplacer ta condition dans la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO TMP_MANDAT
    	(EXERCICE,ACTIVITE,INDICATEUR,SOA,COMMUNE,CATEGORIE,FINANCEMENT,COMPTE,MAND_SITE,MAND_NUM_INFO,MAND_MONTANT,MAND_TAXE,MAND_NUMERO_BE, MAND_NUMERO_MAND, MAND_NUMERO_BMAND, MAND_NUMERO_LIQ, MAND_DATE_LIQ,MAND_DATE_ORD,MAND_CODE_TIERS,MAND_LIBELLE,MAND_MODE_PAIE,TYPE_ENG,TYPE_MAND,MAND_ORDONNATEUR, MAND_GEST_ACT,MAND_CDE,MAND_VISA_TEF, MAND_DATE_TEF,MAND_OBJET,TYPE_DEP,CODE_ACT,DATE_RECUP,OP_NUM,EXP_DATE)
    SELECT	:new.EXERCICE,:new.ACTIVITE,:new.INDICATEUR,:new.SOA,:new.COMMUNE,:new.CATEGORIE,:new.FINANCEMENT,:new.COMPTE,:new.MAND_SITE,:new.MAND_NUM_INFO,:new.MAND_MONTANT,:new.MAND_TAXE,:new.MAND_NUMERO_BE, :new.MAND_NUMERO_MAND, :new.MAND_NUMERO_BMAND, :new.MAND_NUMERO_LIQ, :new.MAND_DATE_LIQ,:new.MAND_DATE_ORD,:new.MAND_CODE_TIERS,:new.MAND_LIBELLE,:new.MAND_MODE_PAIE,:new.TYPE_ENG,:new.TYPE_MAND,:new.MAND_ORDONNATEUR, :new.MAND_GEST_ACT,:new.MAND_CDE,:new.MAND_VISA_TEF, :new.MAND_DATE_TEF,:new.MAND_OBJET,:new.TYPE_DEP,:new.CODE_ACT,:new.DATE_RECUP,:new.OP_NUM,:new.EXP_DATE
    FROM	DUAL
    WHERE	NOT EXISTS (SELECT 1 FROM tmp_mandat WHERE mand_num_info = :NEW.mand_num_info)
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 40
    Par défaut
    Merci beaucoup mon ami, tu m'as sauvé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. INSERT IF NOT EXISTS
    Par finiderire dans le forum Langage SQL
    Réponses: 12
    Dernier message: 27/03/2012, 17h44
  2. [MySQL] INSERT IF NOT EXISTS
    Par Iloyo dans le forum MySQL
    Réponses: 7
    Dernier message: 17/03/2010, 15h26
  3. Sunopsis ODI: Insertion if not exists
    Par Marie-Thérèse dans le forum ODI (ex-Sunopsis)
    Réponses: 1
    Dernier message: 06/08/2009, 10h43
  4. insert et not exists
    Par farenheiit dans le forum SQL
    Réponses: 3
    Dernier message: 10/07/2009, 16h45
  5. Insert .. where not exists
    Par Zolex dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 02/03/2007, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo