Problème sous oracle 9i

bonjour,
j'ai développé un trigger sous oracle qui gère des exceptions, lors de la compilation il n'y a pas d'erreur, mais lorsque je fais un insert qui declenche mon trigger des erreurs se produisent

ora-20001:c'est mon exception qui se declenche donc pas de problème
ora06512!!!!!!
ora04088!!!!!!

create or replace trigger verifupdatepuart
before update of puart on article
for each row
begin
if (:new.puart>:old.puart*1.1) then
raise_application_error(-20111,'l augmentation du prix est trop importante');
end if;
end;

Pouvez-vous m'expliquer pourquoi Oracle génère ces erreurs, je vous remercie tous par avance

6 réponses

  1. Il ne "génère" pas d'erreur : c'est la pile des erreurs. Regarde le libellé des erreurs avant de poser des questions sur Oracle ;-)

    Les erreurs de -06500 à -06599 sont des erreurs PL/SQL
    => ORA-06512 : indique la ligne de l'erreur (at str line num)

    Les erreurs de -04070 à -04099 sont les messages des triggers :
    => ORA-04088 : error during execution of trigger nomdutrigger

    Au niveau oracle, je ne suis pas sur qu'on puisse changer ce comportement (il existe bien un deuxième paramètre à raise_application_error, à TRUE ou FALSE, censé mettre l'erreur dans la pile ou tout écraser, mais chez moi en Oracle 8, ça ne change rien :-( )

    Mais ne t'inquiete pas trop : le SQLCODE vaudra bien la bonne valeur (celle de ton raise_application_error), donc dans le traitement du "dessus", tu n'auras aucun pb si c'est ce que tu crains :-)

    @++
    Poster, poster encore et toujours :-)
    0
    1. je te remercie mais le problème c'est que je ne comprend pas pourquoi ces erreurs TRIGGERv se declenchent .
      il semblerait que l'utilisation du raise puis du raise_application_error se mette en conflit
      0
      1. Pourtant, c logique : c'est la pile des erreurs comme je l'ai dit :

        Au raise_application_error, Oracle enregistre qu'une exception est survenue dans le trigger verifupdatepuart => ORA-04088, Ensuite il enregistre le numéro de la ligne et l'endroit en erreur => ORA-06512, Pour finir, ton erreur applicative est enregistrée avec ton libellé => ORA-20901

        C'est tout

        @++
        Poster, poster encore et toujours :-)
        0
        1. salut,
          j'ai un tp me demande de creer une base de données mais le problem c ke quand je lance la requete permettant la creation il me donne une erreur ke la cration du fichier de control est impossible
          0
          1. je veut installer oracle 9i sur debian4.0 mais j'ai un problemedurant l'installation:
            libdb.so.2: cannot open shared object file: No such file or directory
            0
            1. Ha merci je ne comprenais pas ce que signifiait le message ORA-06512, j'avais bien trouvé quelque chose sur http://www.oracleref.com/en/ORA-06512.html, mais je dois avouer que je ne comprenais pas. Mais en fait batmat l'explique plus simplement (ORA-06512 : indique la ligne de l'erreur (at str line num))

              Merci encore
              0