括号错误ora 00906

时间:2014-12-14 10:44:31

标签: sql oracle project

CREATE TABLE AS_Film
  (
    ID_film            INTEGER NOT NULL ,
    Opis               VARCHAR2 (25) NOT NULL ,
    Naziv              VARCHAR2 (25) NOT NULL ,
    Ocjena             VARCHAR2 (25) NOT NULL ,
    "2D_3D"            VARCHAR2 NOT NULL ,
    Sihronizacija      VARCHAR2 NOT NULL ,
    AS_Zanrovi_ID_zanr INTEGER NOT NULL
  ) ;
ALTER TABLE AS_Film ADD CHECK ( "2D_3D"       IN ('2D', '3D')) ;
ALTER TABLE AS_Film ADD CHECK ( Sihronizacija IN ('Da', 'Ne')) ;
ALTER TABLE AS_Film ADD CONSTRAINT AS_Film_PK PRIMARY KEY ( ID_film ) ;

这是什么我尝试将ddl文件上传到iacademyonline并上传其余表格,但电影不会。请帮帮我。

2 个答案:

答案 0 :(得分:5)

根据the documentation(强调我的):

  

VARCHAR2数据类型存储可变长度字符串。 当您使用VARCHAR2列创建表时,为VARCHAR2列指定1到4000字节之间的最大字符串长度(以字节或字符为单位)

此处,您未指定VARCHAR2"2D_3D"Sihronizacija的长度:

CREATE TABLE AS_Film
  (
    ID_film            INTEGER NOT NULL ,
    Opis               VARCHAR2 (25) NOT NULL ,
    Naziv              VARCHAR2 (25) NOT NULL ,
    Ocjena             VARCHAR2 (25) NOT NULL ,
    "2D_3D"            VARCHAR2 NOT NULL ,       -- here
    Sihronizacija      VARCHAR2 NOT NULL ,       -- and here
    AS_Zanrovi_ID_zanr INTEGER NOT NULL
  ) ;

这将产生ORA-00906: missing left parenthesis

答案 1 :(得分:3)

列“2D_3D”和Sihronizacija没有为数据类型定义的长度:

将表格定义更新为:

"2D_3D"            VARCHAR2(<length>) NOT NULL ,
Sihronizacija      VARCHAR2(<length>) NOT NULL ,