Bonjour à tous, j'ai un problème avec un trigger que j'essaye de créer sous Oracle 10G Express.
J'ai une table qui représente les frontières entre 2 pays de la manière suivante :
Et je voudrais que si la ligne (A,B,x) existe dans la table on ne puisse pas insérer les valeurs (B,A,x).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Borders[country1,country2,length]
Sauf erreur de ma part , le trigger est la seul solution pour gérer ce type de doublons, j'ai donc essayer de créer un trigger :
Mais lorsque que je déclare ce trigger j'obtiens le code d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE OR REPLACE TRIGGER check_doublons BEFORE INSERT ON Borders FOR EACH ROW DECLARE country1 NUMBER(15); country2 NUMBER(15); BEGIN IF :NEW.country1 = NEW.country2 THEN IF:OLD.country2 = NEW.country1 THEN RAISE_APPLICATION_ERROR(-20555, 'Le couple inverse existe déja !'); END IF; END IF; END
ERREUR à la ligne 4 : PLS-00201: l'identificateur 'OLD.COUNTRY2' doit être déclaré
J'ai du mal a voir l'erreur, peut etre y a t-il quelque chose que j'ai mal compris.
Merci d'avance pour votre aide![]()
Partager