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:
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 -- 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;
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.
Partager