Erreurs sur un trigger qui fonctionne !
Bonjour, j'ai créé un trigger pour ma base de données sur Oracle 10g XE, celui-ci s'est compilé sans erreur, le voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| CREATE OR REPLACE
TRIGGER TRG_INSERTFILM
BEFORE INSERT ON FILM
FOR EACH ROW
DECLARE
nbfilm INTEGER;
doublefilm EXCEPTION;
BEGIN
SELECT COUNT(*) INTO nbfilm FROM FILM WHERE TITRE_FILM=:NEW.TITRE_FILM AND ANNEE=:NEW.ANNEE;
IF nbfilm > 0 THEN
RAISE doublefilm;
END IF;
EXCEPTION
WHEN doublefilm THEN
raise_application_error(-20090, 'Erreur : un film avec ce titre et cette année existe déjà.');
WHEN OTHERS THEN
raise_application_error(-20080, 'Erreur d''insertion est survenue.');
END; |
Celui-ci sert donc à empêcher l'INSERT d'un film portant le même titre et la même année d'un qui existe déjà. Bref, je fais un test avec mon application C# Winforms, l'erreur est bien générée et affichée dans un MessageBox mais j'en ai pas qu'1 mais 3 :
ORA-20090: Erreur : un film avec ce titre et cette année existe déjà.
ORA-06512: à "FLO.TRG_INSERTFILM", ligne 11
ORA-04088: erreur lors d'exécution du déclencheur "FLO.TRG_INSERTFILM"
La 1ère est de moi, ce qui semble vouloir dire que le trigger fonctionne... mais je ne comprends pas pourquoi il me sort ces 2 autres !
Ligne 11 ? Ou est le probleme ?
Help s'il vous plait !