Создание этой таблицы в оракуле 10 г - PullRequest
0 голосов
/ 04 ноября 2011

Эта таблица не создается в 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
      );

полученное сообщение об ошибке

   ORA-00907: missing right parenthesis

Любая помощь будет принята с благодарностью

Спасибо

Ответы [ 5 ]

1 голос
/ 04 ноября 2011

скепт ',' после FOREIGN KEY (MANAGER) REFERENCES SHIFT_MNG (MANAGER) ENABLE

0 голосов
/ 04 апреля 2015

Попробуйте это

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
  );
0 голосов
/ 18 апреля 2013
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
      );
0 голосов
/ 04 ноября 2011

Вам не хватает запятой

Документы Oracle отмечают это по поводу ORA-00907:

ORA-00907 отсутствует правая скобка

Причина: введена левая скобка без закрывающей правой скобки или в скобках содержится дополнительная информация. Все скобки должны быть введены в парах.

Действие: исправьте синтаксис и повторите инструкцию.

Oracle предлагает информацию относительно ORA-00907 в сочетании с соединениями FULL / LEFT OUTER, связанными с ошибкой 4433936. Эта ошибка, приводившая к исправлению 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 в большинстве универсальных платформ.

Симптомами ORA-00907 и Bug 4433936 являются простые синтаксические ошибки, возникающие в запросах синтаксического анализа, связанных с соединениями FULL / LEFT OUTER. Вы можете обойти ORA-00907, попробовав операторы соединения Oracle переписать запросы, в отличие от соединений ANSI.

0 голосов
/ 04 ноября 2011

Вам не хватает запятой:

   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
      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...