Parece que no se puede. Hice multiples pruebas sin ningún resultado. Asumo que el rango que se le da al ckeck constraint debe ser fijo y no permite la comparación con una función que es dinamica.
Al hacer una prueba así:
Código sql:
Ver originalCREATE TABLE tbl_Proyectos(
proyectoId NUMBER(8)
CONSTRAINT p_id_nn NOT NULL,
proyectoDescripcion varchar2(30)
CONSTRAINT p_des_nn NOT NULL,
proyectoClienteId NUMBER(12)
CONSTRAINT p_clid_nn NOT NULL,
proyectoFechaInicio DATE NOT NULL
CONSTRAINT p_fch_ck CHECK (proyectoFechaInicio<=to_date('2009-09-16','YYYY-MM-DD')));
De esta forma la tabla se crea correctamente.
Esperemos los cometarios de Juan carlos para ver existe forma de hacer lo que quieres.
Sin embargo, como te dije en el primer post, esto lo puedes controlar desde una función en plsql o desde la aplicación que tenga conexión a la base.
saludos