Ошибка создания таблицы SQL - PullRequest
2 голосов
/ 06 февраля 2009

Я только начинаю изучать SQL и наткнулся на первое препятствие, я не могу создать таблицу. Ниже приведен пример кода. Ошибка, которую я получаю при выполнении оператора, ссылается на строку 7, в которой говорится, что существует проблема с «оператором отношений» Цель строки 7 - проверить, что возраст человека превышает 18 лет.

Я использую Oracle (не уверен, что это изменит). Я надеюсь, что кто-то может указать мне правильное направление.

1.  CREATE TABLE employee
2.  (
3.  empID         VARCHAR2(20) NOT NULL primary key,
4.  surname       VARCHAR2(15) NOT NULL CHECK(surname=UPPER(surname)),
5.  deptCode      CHAR(5) NOT NULL CHECK(deptCode=UPPER(deptCode)),
6.  empYear       NUMBER(1,0) NOT NULL CHECK(empYear >= 1 AND empYear <= 4),
7.  birthDate     DATE NOT NULL CHECK((SYSDATE - birthDate) /365 ) >= 18
8.  );

Спасибо.

Ответы [ 2 ]

8 голосов
/ 06 февраля 2009

Вы не можете определить ограничение CHECK, которое ссылается на такую ​​функцию, как SYSDATE.

В документации Oracle обсуждаются ограничения на ограничения CHECK

1 голос
/ 06 февраля 2009

Проверьте ваши скобки.

DATE NOT NULL CHECK(((SYSDATE - birthDate) /365 ) >= 18)

РЕДАКТИРОВАТЬ: Как указал Джастин, вы не можете использовать SYSDATE здесь.

...