Bonjour!
Voila j'utilise oracle 10 g .Voici mon problème:
J'ai une table :Je dois vérifier que la date de naissance de l'employe n'est pas supérieur à la date du jour.
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 TABLE EMPLOYE ( CODE CHAR(3) NOT NULL, NOM CHAR(32) NOT NULL, PRENOM CHAR(32) NOT NULL, DATE_NAISSANCE DATE NOT NULL, LIEU_NAISSANCE CHAR(32) NULL, ADRESSE CHAR(100) NOT NULL, CODEPOSTAL NUMBER(5) NOT NULL, VILLE CHAR(32) NOT NULL, NUMTEL NUMBER(10) NULL, SECTEUR CHAR(40) NOT NULL CHECK (SECTEUR IN ('Administratif', 'Medical', 'Surveillance')) , CONSTRAINT PK_EMPLOYE PRIMARY KEY (CODE) ) ;
Je me suis donc dit que c'etait surement une contrainte Check mais je n'ai pas réussi.
En revanche j'ai essayer un trigger :Et puis lorsque je force l'erreur j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE OR REPLACE TRIGGER add_employe BEFORE INSERT OR UPDATE OF DATE_NAISSANCE ON EMPLOYE FOR EACH ROW BEGIN IF :NEW.DATE_NAISSANCE >= SYSDATE THEN raise_application_error(-20001,'Date de naissance doit être inferieur a la date du jour!'); END IF; END;
Voila je me demande si l'erreur qu'il me fait part (ORA-04088) est normal?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ORA-20001: Date de naissance doit être inferieur a la date du jour! ORA-06512: à "BEN.ADD_EMPLOYE", ligne 3 ORA-04088: erreur lors d'exécution du déclencheur 'BEN.ADD_EMPLOYE'
Et puis est ce que la façon dont je gère le problème est bien?
N'existe t-il pas une contrainte check permettant de faire ca?
Merci beaucoup par avance...
Benoît
Partager