Creating this table in oracle 10g

心已入冬 提交于 2019-12-13 07:27:49

问题


This table is not creating in oracle 10g and I dont know why, the code is

     CREATE TABLE  "shift" 
  ( 
   SHIFT_DATE DATE, 
   OPERATOR1 VARCHAR2(30),
   ENGINEER VARCHAR2(30),
   ENGINEER2 VARCHAR2(30),
   MANAGER VARCHAR2(30),
   SHIFT VARCHAR2(5),
 PRIMARY KEY (SHIFT_DATE) ENABLE, 
 FOREIGN KEY (MANAGER)
  REFERENCES  SHIFT_MNG (MANAGER) ENABLE
   FOREIGN KEY (SHIFT)
  REFERENCES  SHIFT_TYPE (SHIFT) ENABLE
      );

the Error message i get is

   ORA-00907: missing right parenthesis

Any help would be greatly appreciated

Thanks


回答1:


skept ',' after FOREIGN KEY (MANAGER) REFERENCES SHIFT_MNG (MANAGER) ENABLE




回答2:


You're missing a comma:

   CREATE TABLE "shift" (
           SHIFT_DATE DATE
         , OPERATOR1 VARCHAR2 ( 30 )
         , ENGINEER VARCHAR2 ( 30 )
         , ENGINEER2 VARCHAR2 ( 30 )
         , MANAGER VARCHAR2 ( 30 )
         , SHIFT VARCHAR2 ( 5 )
         , PRIMARY KEY ( SHIFT_DATE ) ENABLE
         , FOREIGN KEY ( MANAGER ) REFERENCES SHIFT_MNG ( MANAGER ) ENABLE
         , FOREIGN KEY ( SHIFT ) REFERENCES SHIFT_TYPE ( SHIFT ) ENABLE
         ^
         ^-----------this one
      );



回答3:


You are missing a comma

Oracle docs note this about ORA-00907:

ORA-00907 missing right parenthesis

Cause: A left parenthesis has been entered without a closing right parenthesis, or extra information was contained in the parentheses. All parentheses must be entered in pairs.

Action: Correct the syntax and retry the statement.

Oracle offers information regarding ORA-00907 in conjunction with FULL/LEFT OUTER joins in association with Bug 4433936. This bug causing an ORA-00907 has been fixed in 10.2.0.3 and future versions of 11g, it can still be seen in 9.2.0.5, 9.2.0.7, 9.2.0.8, 10.1.0.5, and 10.2.0.2 in most generic platforms.

The symptoms of ORA-00907 and Bug 4433936 are simple syntax errors which happen within parsing queries associated with FULL/LEFT OUTER joins. You can work around ORA-00907 by trying Oracle join operators to rewrite queries, as opposed to ANSI joins.




回答4:


CREATE TABLE  shift 
  ( 
   SHIFT_DATE DATE, 
   OPERATOR1 VARCHAR2(30),
   ENGINEER VARCHAR2(30),
   ENGINEER2 VARCHAR2(30),
   MANAGER VARCHAR2(30),
   SHIFT VARCHAR2(5),
 PRIMARY KEY (SHIFT_DATE) ENABLE, 
 FOREIGN KEY (MANAGER)
  REFERENCES  SHIFT_MNG (MANAGER) ENABLE
   FOREIGN KEY (SHIFT)
  REFERENCES  SHIFT_TYPE (SHIFT) ENABLE
      );



回答5:


Try this

CREATE TABLE  "shift" 
  ( 
   SHIFT_DATE DATE, 
   OPERATOR1 VARCHAR2(30),
   ENGINEER VARCHAR2(30),
   ENGINEER2 VARCHAR2(30),
   MANAGER VARCHAR2(30),
   SHIFT VARCHAR2(5),
   PRIMARY KEY (SHIFT_DATE) ENABLE, 
   FOREIGN KEY (MANAGER)   REFERENCES  SHIFT_MNG (MANAGER) ENABLE,
   FOREIGN KEY (SHIFT)   REFERENCES  SHIFT_TYPE (SHIFT) ENABLE
  );


来源:https://stackoverflow.com/questions/8009719/creating-this-table-in-oracle-10g

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!