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

PL/SQL Oracle Discussion :

Récupérer une exception depuis un trigger


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Par défaut Récupérer une exception depuis un trigger
    Bonjour à tous,

    Difficile de donner un sujet précis à ce topic en si peu de mots...

    Mon problème est le suivante :

    J'ai une procédure pl/sql qui fait un insert dans une table (appelons-la XYZ)
    Le corps de ma procédure peut se résumer à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE
    ...
    BEGIN
        INSERT INTO XYZ(champs1) VALUES (value1);
    EXCEPTION WHEN OTHERS THEN
        -- traiter l'exception
    END
    Sur la table XYZ, un trigger se déclenche et fait des vérifications sur "value1" afin que cette valeur respecte certaines conditions...Si "value1" ne respecte pas ces conditions, le trigger lance une procédure qui elle-même lance un raise_application_error.

    Le problème, c'est que je n'arrive pas à récupérer l'exception au niveau de la procédure. Est-ce normal ? Y'a-t-il moyen de la récupérer ?

    Merci de votre aide...

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Vous avez raté quelque chose parce que le comportement que vous décrivez n'est pas vrai
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 
    Connected as mni
     
    SQL> 
    SQL> create table test_trg (a number)
      2  /
     
    Table created
    SQL> create procedure p_raise_err(p_in varchar2)
      2  Is
      3  Begin
      4    Raise_application_error(-20010, p_in);
      5  End;
      6  /
     
    Procedure created
    SQL> create trigger bi_test_trg
      2  before insert on test_trg
      3  for each row
      4  begin
      5    If :new.a > 5 Then
      6      p_raise_err('insert interdit');
      7    End If;
      8    Dbms_output.put_line('Triger Ok');
      9  end;
     10  /
     
    Trigger created
    SQL> create procedure p_test_trg (p_in In number)
      2  Is
      3  Begin
      4    insert into test_trg values (p_in);
      5  Exception
      6    When Others Then
      7      Dbms_output.put_line('Erreur : '||sqlerrm);
      8  End;
      9  /
     
    Procedure created
     
    SQL> set serveroutput on
    SQL> exec p_test_trg(1);
     
    Triger Ok
     
    PL/SQL procedure successfully completed
     
    SQL> exec p_test_trg(10);
     
    Erreur : ORA-20010: insert interdit
    ORA-06512: à "MNI.P_RAISE_ERR", ligne 4
    ORA-06512: à "MNI.BI_TEST_TRG", ligne 3
    ORA-04088: erreur lors d'exécution du déclencheur 'MNI.BI_TEST_TRG'
     
    PL/SQL procedure successfully completed
     
    SQL>

Discussions similaires

  1. [AJAX] récupérer une valeur depuis responseText
    Par Ministar dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 11/10/2007, 13h33
  2. [SQL] récupérer une variable dans un trigger
    Par zekiller3 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/05/2007, 14h48
  3. Récupérer une structure depuis une liste
    Par bit_o dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 01/04/2007, 21h34
  4. Récupérer une date depuis une page ASP dans une BDD
    Par franckrichard57 dans le forum ASP
    Réponses: 2
    Dernier message: 22/03/2007, 11h31
  5. [WinDev 7.5] Récupérer une exception
    Par sylsau dans le forum WinDev
    Réponses: 1
    Dernier message: 29/12/2006, 18h01

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