Вложенный стол не брать? - PullRequest
0 голосов
/ 16 марта 2012

Я пытался запустить следующий SQL, но он не будет работать, я что-то упустил очевидное или неправильно понял?

SQL> CREATE OR REPLACE TABLE ACTOR_QUOTES(
  2  ACTORID CHAR(5),
  3  QUOTES AQ_NT
  4  ) NESTED TABLE QUOTES STORE AS ACTOR_QUOTES_NT
  5  /
CREATE OR REPLACE TABLE ACTOR_QUOTES(
                  *
ERROR at line 1:
ORA-00922: missing or invalid option


SQL> CREATE TABLE ACTOR_QUOTES(
  2  ACTORID CHAR (5),
  3  QUOTES AQ_NT,
  4  ) NESTED TABLE QUOTES STORE AS ACTOR_QUOTES_NT
  5  /
) NESTED TABLE QUOTES STORE AS ACTOR_QUOTES_NT
*
ERROR at line 4:
ORA-00904: : invalid identifier

Ответы [ 3 ]

3 голосов
/ 16 марта 2012

Для начала, в Oracle нет CREATE OR REPLACE TABLE.Вы должны использовать CREATE TABLE.Параметр замены работает только для представлений, пакетов, процедур и т. Д.

Также не уверен, почему перед каждым именем столбца в таблице есть числа (например, 2 ACTORID CHAR (5)).Их там быть не должно.

1 голос
/ 16 марта 2012

CREATE OR REPLACE не работает с таблицами. Кроме того, имя вашего поля должно быть "NESTED TABLE QUOTES", хотя в идеале я бы выбрал nested_table_quotes.

0 голосов
/ 16 марта 2012

Во втором примере у вас есть запятая после определения второго столбца, за которой сразу же (на следующей строке) следует закрывающая скобка. Из-за запятой анализатор ожидает определения другого столбца или ограничения. Удалить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...