Problème sous oracle 9i

Fermé
gaficat
Messages postés
3
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
17 juin 2003
- 17 juin 2003 à 09:19
 Robert - 4 mai 2010 à 17:05
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

batmat
Messages postés
1871
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
114
17 juin 2003 à 13:37
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
gaficat
Messages postés
3
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
17 juin 2003

17 juin 2003 à 17:12
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
batmat
Messages postés
1871
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
114
17 juin 2003 à 17:37
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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