创建表时“%s:无效标识符”

时间:2015-11-24 09:26:46

标签: sql oracle constraints

我正在尝试为类创建一个表,但不太清楚为什么我会收到此错误。任何帮助将不胜感激。

CREATE TABLE EMPLEADOS_CHECK
(
  NUMERO NUMBER(5) PRIMARY KEY,
  NOMBRE VARCHAR2(20) UNIQUE NOT NULL,
  DIRECCION NUMBER(3) NOT NULL,
  DISTANCIA NUMBER(3),
  OFICIO VARCHAR2(15),
  TELEFONO_FIJO VARCHAR2(9),
  TELEFONO_MOVIL VARCHAR2(9),
  FECHA_NAC DATE,
  FECHA_ALTA DEFAULT(SYSDATE),
  DEPT NUMBER(3),
  NUM_HIJOS NUMBER(2),
  TITULADO CHAR(1),
  SALARIO NUMBER(6),

  CONSTRAINT CK_NUMERO CHECK (NUMERO BETWEEN 1 AND 10000),
  CONSTRAINT CK_TEL_FIJO CHECK (TELEFONO_FIJO LIKE '91%'),
  CONSTRAINT CK_TEL_MOVIL CHECK (TELEFONO_MOVIL LIKE '6%'),
  CONSTRAINT CK_OFICIO CHECK (OFICIO IN ('VENDEDOR','GERENTE', 'OTROS')),

  CONSTRAINT CK_FECHA_NAC CHECK (FECHA_NAC < '01/01/1990'),

  CONSTRAINT CK_DEPT_CATEGORY CHECK (DEPT IN ('10','20', '30')),
  CONSTRAINT CK_DEPT_NUMBER CHECK (DEPT BETWEEN 1 AND 100),

  CONSTRAINT CK_NUM_HIJOS_QUANTITY DEFAULT(0) CHECK(NUM_HIJOS <= 10),
  CONSTRAINT CK_NUM_HIJOS_RANGE CHECK (NUM_HIJOS BETWEEN 1 AND 10),

  CONSTRAINT CK_TITULADO DEFAULT('N') CHECK (TITULADO IN ('S','N'))
);

让我知道我做错了什么!

1 个答案:

答案 0 :(得分:-2)

嗯,似乎经过一些摆弄代码后我终于开始创建了它。这就是我用它来成功让我生成一个表:

CREATE TABLE EMPLEADOS_CHECK
(
  NUMERO NUMBER(5) PRIMARY KEY,
  NOMBRE VARCHAR2(20) UNIQUE NOT NULL,
  DIRECCION NUMBER(3) NOT NULL,
  DISTANCIA NUMBER(3),
  OFICIO VARCHAR2(15),
  TELEFONO_FIJO VARCHAR2(9),
  TELEFONO_MOVIL VARCHAR2(9),
  FECHA_NAC DATE,
  FECHA_ALTA DATE DEFAULT(SYSDATE),
  DEPT NUMBER(3),
  NUM_HIJOS NUMBER(2) DEFAULT(0) ,
  TITULADO CHAR(1) DEFAULT('N'),
  SALARIO NUMBER(6),

  CONSTRAINT CK_NUMERO CHECK (NUMERO BETWEEN 1 AND 10000),
  CONSTRAINT CK_TEL_FIJO CHECK (TELEFONO_FIJO LIKE '91%'),
  CONSTRAINT CK_TEL_MOVIL CHECK (TELEFONO_MOVIL LIKE '6%'),
  CONSTRAINT CK_OFICIO CHECK (OFICIO IN ('VENDEDOR','GERENTE', 'OTROS')),
  CONSTRAINT CK_FECHA_NAC CHECK (to_char(FECHA_NAC, 'yyyy') < 1990),
  CONSTRAINT CK_DEPT_CATEGORY CHECK (DEPT IN ('10','20', '30')),
  CONSTRAINT CK_DEPT_NUMBER CHECK (DEPT BETWEEN 1 AND 100),
  CONSTRAINT CK_NUM_HIJOS_QUANTITY CHECK (NUM_HIJOS <= 10),
  CONSTRAINT CK_NUM_HIJOS_RANGE CHECK (NUM_HIJOS BETWEEN 1 AND 10),
  CONSTRAINT CK_TITULADO CHECK (TITULADO IN ('S','N'))
);

感谢这两个答案!我很感兴趣。