Отсутствует правая скобка после (или до) по умолчанию 0, Oracle - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь создать таблицу с оракулом SQL, два столбца таблицы должны иметь значение по умолчанию и не должно быть NULL.

Я получаю сообщение об ошибке, которое вы можете увидеть ниже, но я не могу понять это, потому что здесь нет скобок, которые нужно закрывать !!!!

CREATE TABLE ENCUENTROS (
  2  elocal constraint clave_extrana_equipos references equipos(code) not null enable,
  3  evisitante constraint clave_extrana_equipos references equipos(code) not null enable,
  4  fecha date,
  5  plocal number constraint plocal_mayor_cero check (plocal > 0) default 0 not null enable,
  6  pvisitante number constraint pvisitante_mayor_cero check (pvisitante > 0) default 0 not null enable);
plocal number constraint plocal_mayor_cero check (plocal > 0) default 0 not null enable,
                                                              *
ERROR at line 5:
ORA-00907: missing right parenthesis

Ошибка устранена:

enter image description here

1 Ответ

0 голосов
/ 21 мая 2019

Этот код работал для меня:

create table encuentros (
  elocal number not null 
    constraint clave_extrana_equipos_1 references equipos(code) enable,
  evisitante number not null 
    constraint clave_extrana_equipos_2 references equipos(code) enable,
  fecha date,
  plocal number default 0 not null 
    constraint plocal_mayor_cero check (plocal >= 0)  enable,
  pvisitante number default 0 not null 
    constraint pvisitante_mayor_cero check (pvisitante >= 0) enable);

Было несколько проблем:

  • имя clave_extrana_equipos для ограничений использовалось дважды. Используйте два разных имени,
  • столбцы elocal и evisitante не указали тип,
  • записать default 0 not null после спецификации типа, до ограничения.

Edit:

Как заметил @APC, спецификация типа для первых двух столбцов здесь не нужна.

...