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