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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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