Problema con restricciones al crear una tabla (SQL, Oracle)

Iniciado por |Miguel|, 22 Diciembre 2011, 13:52 PM

0 Miembros y 1 Visitante están viendo este tema.

|Miguel|

Buenas a todos.
Ante todo, Feliz Navidad y espero q haya habido suerte con la Lotería... a mi me han caído 5€ de *****.. pero bueno algo es algo  :xD, al tema

Tengo esta sentencia:

Código (sql) [Seleccionar]
CREATE TABLE EMPLEADO(
COD NUMBER(4),
NOMBRE VARCHAR2(20),
APELLIDO1 VARCHAR2(20),
APELLIDO2 VARCHAR2(20),
DIRECCION VARCHAR2(30),
TELEFONO VARCHAR2(14),
DNI VARCHAR2(9),
F_NACIMIENTO DATE,
NACIONALIDAD VARCHAR2(15),
SEXO VARCHAR2(6),
FIRMA NUMBER(4),
SALARIO NUMBER (7,2),
CONSTRAINT PK_EMPLEADO PRIMARY KEY (COD),
CONSTRAINT CH_SALARIO CHECK(SALARIO>0),
CONSTRAINT CH_FNACIMIENTO CHECK(F_NACIMIENTO<SYSDATE),
CONSTRAINT CH_SEXO CHECK (SEXO IN ("HOMBRE","MUJER", "hombre", "mujer"))
);


Y las restricciones de F_NACIMIENTO y de SEXO no le gustan demasiado... Básicamente lo que quiero es obligar a que la fecha de nacimiento sea siempre menor a SYSDATE y que el sexo sea uno de los que están puestos ahí...

Errores que da:

  • F_NACIMIENTO: ORA-02436: variable de sistema o de fecha especificada erróneamente en restricción de control (CHECK)
  • SEXO: ORA-00904: "mujer": identificador no válido

En el de sexo, sale "mujer" como no válido por ser el último de la lista.
Gracias a todos.

Un saludo y Feliz Navidad. :rolleyes:

|Miguel|

Por lo visto nadie sabe nada de esto así que si no se puede hacer a nivel de create table lo dejaré para un Procedure en PL/SQL...
Gracias.