Erreur ORA-21000 en PL/SQL pour un trigger
Citation:
ORA-21000: l'argument numéro d'erreur utilisé pour raise_application_error de 1 est hors limites
ORA-06512: à "LD5V.ANNULE_RESERVATION", ligne 20
ORA-04088: erreur lors d'exécution du déclencheur 'LD5V.ANNULE_RESERVATION'
Voici donc l'erreur que j'ai lorsque je veux updater ma table reservation, j'ai essayé plein de chiffres différents pour le raise application erreur, mais rien n'y fait...
Voici le code de mon trigger :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| CREATE OR REPLACE TRIGGER annule_reservation
BEFORE UPDATE
ON reservation
FOR EACH ROW
DECLARE
jourDepart DATE ;
erreurDate EXCEPTION ;
BEGIN
SELECT jour_depart INTO jourDepart
FROM vol
WHERE n_vol = :new.num_Vol_res ;
IF (( SYSDATE > jourDepart -2 ) AND ((:old.est_Confirme = 0) AND (:new.est_Confirme = 1)) ) THEN
raise erreurDate ;
END IF;
EXCEPTION
WHEN erreurDate THEN
raise_application_error(-10000,'Il fallait confirme au moins 2 jours avant le depart.');
END;
/ |
Bon sinon, j'ai un autre problème lié à celui ci finalement. Lorsque mon trigger se déclenche, c'est bien il affiche un message d'erreur, mais ma table est qd même modifié. Comment dire au trigger qu'il ne faut pas qu'afficher mais carrément empêcher de continuer à la requête... Peut être avec raise application error, mais comme vous pouvez le constater, ça veut pas...
Merci infiniment pour votre aide...