在 oracle 10g 中创建此表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8009719/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 00:25:27  来源:igfitidea点击:

Creating this table in oracle 10g

oracleoracle10g

提问by Rosco

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

这个表不是在 oracle 10g 中创建的,我不知道为什么,代码是

     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

谢谢

回答by Max

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

怀疑 ',' 之后 FOREIGN KEY (MANAGER) REFERENCES SHIFT_MNG (MANAGER) ENABLE

回答by derobert

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
      );

回答by Ghostman

You are missing a comma

你少了一个逗号

Oracle docs note this about ORA-00907:

Oracle 文档注意到有关 ORA-00907 的这一点:

ORA-00907 missing right parenthesis

ORA-00907 缺少右括号

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.

Oracle 提供了有关 ORA-00907 以及与错误 4433936 相关联的 FULL/LEFT OUTER 连接的信息。导致 ORA-00907 的这个错误已在 10.2.0.3 和 11g 的未来版本中修复,它仍然可以在 9.2.0.5 中看到、9.2.0.7、9.2.0.8、10.1.0.5 和 10.2.0.2 在大多数通用平台中。

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.

ORA-00907 和错误 4433936 的症状是在解析与 FULL/LEFT OUTER 连接关联的查询中发生的简单语法错误。与 ANSI 连接相反,您可以通过尝试 Oracle 连接运算符重写查询来解决 ORA-00907。

回答by BipiN PaRMaR

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
      );

回答by khokon das

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
  );