Отсутствует правая скобка при создании таблицы - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать базовую таблицу (Diak) с помощью сценария SQL, и он продолжает давать мне ORA-00907 в первой строке.

Однако я создаю другую таблицу (Targy) ста же самая структура, и она создается просто отлично.

create table Diak (
  Diak_id rowid constraint pk_diak primary key,
  Nev varchar2(100),
  Szul_datum date szul_70_tol constraint check (Szul_datum>= date'1970-1-1'),
  Cim long,
  Kod varchar2(100) constraint uk_diak_kod unique,
  Kezdes_eve number(4) constraint kezdes_88_tol check (Kezdes_eve>= 1988),
  );

create table Targy (
  Targy_id rowid constraint pk_targy primary key ,
  Nev long,
  Kod varchar2(100) constraint uk_targy_kod unique,
  Eloado varchar2(100) default 'Bármi Áron',
  Napok varchar2(100),
  Hely varchar2(100)
  );  

В ней говорится «Ошибка запуска в строке: 1 в команде […] 00907. 00000 -« отсутствует правая круглая скобка »». Так как Targy table в порядке, я не знаю, в чем проблема с Diak table.

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Вы неправильно объявляете ограничение CHECK;просто удалите часть xxxxx CONSTRAINT, и все будет в порядке:

create table Diak (
  Diak_id rowid constraint pk_diak primary key,
  Nev varchar2(100),
  Szul_datum date check (Szul_datum>= date'1970-1-1'),
  Cim long,
  Kod varchar2(100) constraint uk_diak_kod unique,
  Kezdes_eve number(4) check (Kezdes_eve>= 1988)
);

Демонстрация на DB Fiddle .

Примечание: также естьконечная запятая в конце объявления последнего столбца, но я предполагаю, что это опечатка.

1 голос
/ 10 октября 2019
(Kezdes_eve>= 1988), 

Удалите запятую, и все будет хорошо.

...