contraintes applicatives sur une colonne
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:
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:
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. |