在默认值0之后(或之前),Oracle缺少右括号

时间:2019-05-21 09:10:23

标签: sql oracle oracle-sqldeveloper oracle12c

我正在尝试使用oracle 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 :(得分:0)

此代码对我有用:

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被使用了两次。使用两个不同的名称,
  • elocalevisitante未指定类型,
  • 在类型说明之后,在约束之前,写default 0 not null

编辑:

由于@APC在这里不需要前两列的类型说明。