Problème de Trigger inter-table
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| CREATE OR REPLACE TRIGGER trigger_prix_activite
BEFORE INSERT ON Activite
FOR EACH ROW
DECLARE
LN$Num Station.tarif%Type ;
BEGIN
SELECT tarif INTO LN$Num FROM Station
WHERE Station.nomStation = :NEW.nomStation;
IF (:NEW.prix >= LN$Num) THEN
raise_application_error(-20000,'Erreur trigger prix_activite');
END IF;
END;
/ |
Réponse de Oracle
Code:
1 2 3 4 5 6 7
| SQL> insert into Activite values('Marbela', 'Musee de la France', 3000);
insert into Activite values('Marbela', 'Musee de la France', 3000)
*
ERREUR Ó la ligne 1 :
ORA-20000: Erreur trigger prix_activite
ORA-06512: Ó "BAPTX.TRIGGER_PRIX_ACTIVITE", ligne 8
ORA-04088: erreur lors d'exÚcution du dÚclencheur 'BAPTX.TRIGGER_PRIX_ACTIVITE' |
Donc en théorie il lève bien l'exception quand j'essaye de rentrer le prix d'une activité supérieur au tarif d'un séjour. Néanmoins, je ne suis pas sure que les trois lignes suivantes doivent apparaitre. Et en gros visiblement il me montre une belle grosse erreur. Mais disons que sqlplus est pas doué pour pointer du doigt précisément une erreur et comme on débute seulement les triggers en cours... Et pourtant ce code est déjà inspiré du net :(
Si vous pouvez m'aider... Merci :D