Bonjour,

Je suis actuellement en train de réaliser un trigger tout simple. Ce trigger passe bien (le message "Trigger created." m'est affiché).
Voici mon trigger :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
create or replace trigger verifpoints
before insert on points
for each row
declare
datefin date;
begin
select deb + nbj into datefin 
from sites 
where nosite = :new.nosite;
if :new.jour < datefin then
Raise_application_error(-20000,'Erreur : la date du jour de la visite doit être ultérieure à la date de fin de lépreuve');
end if;
end;
Lorsque j'essai d'insérer un enregistrement dans ma table (qui est censé violer cette contrainte), j'ai le message suivant qui s'affiche :

insert into points values ('2', '1', '07-FEB-2009', '10', '3')
*
ERROR at line 1:
ORA-20000: Erreur : la date du jour de la visite doit être ultérieure à la date de fin de lépreuve
ORA-06512: at "L35.VERIFPOINTS", line 6
ORA-04088: error during execution of trigger 'L35.VERIFPOINTS'
La première erreur affichée "ORA-20000" me convient bien puisque c'est celle que j'ai levée.
Les deux autres me plaisent moins... savez vous pourquoi elles s'affichent?

PS: lorsque j'insère un enregistrement ne violant pas la contrainte, tout se passe bien.

Merci d'avance.