Bonjour à tous,
Alors voila je dois ajouter des contraintes applicatives sur une colonne DATENAIS de la table EMPLOYES:
- DATENAIS >= AJD
- DATENAIS ne peut-etre null:

voici ma commande sql:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
-- ajout des contraintes applicatives : 
-- date naissance obligatoire et > ajd
ALTER TABLE EMPLOYES
--DROP CONSTRAINT EmployesDateNaisNotNull
--DROP CONSTRAINT EmployesDateNaisValide
 
ADD CONSTRAINT EmployesDateNaisNotNull CHECK (DATENAIS IS NOT NULL)
ADD CONSTRAINT EmployesDateNaisValide CHECK (TO_CHAR(DATENAIS, 'DDMMYYYY') >= TO_CHAR(current_date, 'DDMMYYYY'));
 
-- activation des contraintes
--ENABLE CONSTRAINT EmployesDateNaisNotNull
--ENABLE CONSTRAINT EmployesDateNaisValide;
et voici ce que me repond Oracle quand j'execute la commande:
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
 
Erreur commençant à la ligne 4 de la commande :
ALTER TABLE EMPLOYES
--DROP CONSTRAINT EmployesDateNaisNotNull
--DROP CONSTRAINT EmployesDateNaisValide
 
--ADD CONSTRAINT EmployesDateNaisNotNull CHECK (DATENAIS IS NOT NULL)
ADD CONSTRAINT EmployesDateNaisValide CHECK (TO_CHAR(DATENAIS, 'DDMMYYYY') >= TO_CHAR(sysdate, 'DDMMYYYY'))
Rapport d'erreur :
Erreur SQL : ORA-02436: variable de date ou système mal indiquée dans contrainte CHECK
02436. 00000 -  "date or system variable wrongly specified in CHECK constraint"
*Cause:    An attempt was made to use a date constant or system variable,
           such as USER, in a check constraint that was not completely
           specified in a CREATE TABLE or ALTER TABLE statement.  For
           example, a date was specified without the century.
*Action:   Completely specify the date constant or system variable.
           Setting the event 10149 allows constraints like "a1 > '10-MAY-96'",
           which a bug permitted to be created before version 8.