现在的位置: 首页 > 综合 > 正文

ORA-00907: missing right parenthesis

2013年09月15日 ⁄ 综合 ⁄ 共 891字 ⁄ 字号 评论关闭

CREATE  TABLE RENTAL (
BOOK_BATE DATE  NOT NULL DEFAULT SYSDATE CONSTRAINT BOOK_DATE_UK UNIQUE,
MEMBER_ID NUMBER(10) NOT NULL,
COPY_ID NUMBER(10) NOT NULL,
ACT_BET_DATE DATE DEFAULT (SYSDATE-2),
EXP_RET_DATE DATE,
TITLE_ID NUMBER(10),
CONSTRAINT RENTAL_PK     PRIMARY KEY (BOOK_DATE,MEMBER_ID,COPY_ID,TITLE_ID),
CONSTRAINT MEMBER_ID_FK1 FOREIGN KEY(MEMBER_ID) REFERENCES MEMBER(MEMBER_ID),
CONSTRAINT COPY_ID_FK2   FOREIGN KEY(COPY_ID)     REFERENCES TITLE_COPY(COPY_ID),
CONSTRAINT TITLE_ID_FK2  FOREIGN KEY(TITLE_ID)   REFERENCES TITLE_COPY(TITLE_ID),

)

 

 

结果:

                                  ORA-00907: missing right parenthesis

 

 

感觉从语法上是没错的,但请看创建表的定义:

  

 

                       CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name

 

{ column_name data_type [ DEFAULT default_expr ] [ column_constraint [, ... ] ]
    | table_constraint }  [, ... ]
).....

 

 

 

看绿色的内容与红色的定义的内容比较:可以看出一个列默认值置于列约束之前

像这样的错很难发现,在与定义比较时,感觉是没错的,因为一般对顺序没太注重。但容易让人烦到要哭。

 

 

当然出现这样的错误还有这样的情况:多了或少了一边的括号、单双引号等。

抱歉!评论已关闭.