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

Oracle Discussion :

Sortir d'un trigger


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 26
    Par défaut Sortir d'un trigger
    Bonjour,

    Dans un trigger, avec son traitement. Sur un bloc PL/SQL avec comme exception WHEN NO_DATA_FOUND, comment puis-je dire que l'on sort du trigger pour qu'il ne continue pas le traitement. (où j'ai mis ??????)

    EX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    create or replace TRIGGER SUP_COMMANDE
    before delete on ENTETE_COMMANDE
    for each row
    declare
    result varchar2(2000);
    nomFT varchar2(25);
    NUM_COMMANDE varchar2(20);
    four varchar2(6);
    begin
       declare
       begin
         select CODE_FOURNISSEUR into four from LIGNE_COMMANDE where NUMERO_COMMANDE=:old.NUMERO_COMMANDE;
       exception
       when no_data_found then
          ???????
          /* on arrête le traitement */
       end;
       NUM_COMMANDE := :old.NUM_CHRONO_COMMANDE;
       select replace(LIBELLE_FOURNISSEUR,'''','''''') into nomFT from FOURNISSEUR where CODE_FOURNISSEUR = FOUR;
       result := 'COMMANDE( ''S'','''||NUM_COMMANDE||''','''||four||''','''||nomFT||''') ';
       insert into TRACE_TRIGGER (ENTRY,COMMAND) values('COMMANDE',result);
    end;
    /


    Merci de votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Mets ceci à la place des ??? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    raise_application_error(-20000, 'Aucune donnée trouvée');
    NB : pense aux balises code pour la lisibilité

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Sinon, tu le gères en PL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    WHEN NO_DATA_FOUND 
    THEN NULL; 
    END;
     
    IF four  IS NOT NULL 
    THEN
     NUM_COMMANDE := :old.NUM_CHRONO_COMMANDE; 
     select replace(LIBELLE_FOURNISSEUR,'''','''''') 
     into nomFT 
     from FOURNISSEUR 
     where CODE_FOURNISSEUR = FOUR; 
     
    result := 'COMMANDE( ''S'','''||NUM_COMMANDE||''','''||four||''','''||nomFT||''') '; 
    insert into TRACE_TRIGGER (ENTRY,COMMAND) 
    values('COMMANDE',result); 
    END IF;

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    christellel198 Merci de penser aux balises CODE à l'avenir, tu peux éditer ton 1° message pour voir comment je les ai incluses

Discussions similaires

  1. [power designer et Sybase] trigger
    Par mr_qno dans le forum Sybase
    Réponses: 4
    Dernier message: 12/07/2006, 18h32
  2. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38
  3. Empecher le curseur de sortir du dialog
    Par Gadjo dans le forum MFC
    Réponses: 5
    Dernier message: 18/11/2002, 18h01
  4. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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