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 :
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 :
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
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;
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 !
Partager