Bonjour!

Voila j'utilise oracle 10 g .Voici mon problème:

J'ai une table :
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 dois vérifier que la date de naissance de l'employe n'est pas supérieur à la date du jour.

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 :
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;
Et puis lorsque je force l'erreur j'obtiens :

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'
Voila je me demande si l'erreur qu'il me fait part (ORA-04088) est normal?

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