J'essaie de vérifier l'ajout de la contrainte suivante, mais Oracle renvoie l'erreur ci-dessous.Utilisation de la date dans une contrainte de vérification, Oracle
ALTER TABLE Table1
ADD (CONSTRAINT GT_Table1_CloseDate
CHECK (CloseDate > SYSDATE),
CONSTRAINT LT_Table1_CloseDate
CHECK (CloseDate <= SYSDATE + 365)),
CONSTRAINT GT_Table1_StartDate
CHECK (StartDate > (CloseDate + (SYSDATE + 730))));
Erreur:
Error report:
SQL Error: ORA-02436: date or system variable wrongly specified in CHECK constraint
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.
Notez que pour la deuxième « contrainte » LT_Table1_CloseDate, vous pouvez utiliser une contrainte de vérification dans 11g en utilisant des colonnes virtuelles (http://rwijk.blogspot.com/2007/12/check- constraints-with-sysdate.html) –