Невозможно создать таблицу со столбцом типа объекта (и тот же тип объекта содержит атрибут типа вложенной таблицы) - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь создать таблицу со столбцом типа объекта и сложную иерархию вложенных таблиц. Получение ошибки ORA-22913. В операторе таблицы CREATE столбец «theCol» имеет тип объекта (т.е. MainObj). MainObj содержит атрибут типа вложенной таблицы, то есть ChildTab. Я думаю, что предполагается использовать предложение NESTED TABLE в инструкции CREATE TABLE. Но не уверен, как использовать это здесь, потому что "theCol" НЕ имеет типа вложенной таблицы.

DROP TYPE MainObj;
DROP TYPE ChildTab;
DROP TYPE ChildObj;

CREATE TYPE ChildObj AS OBJECT (
naame varchar2(20)
, kaam varchar2(20)
);
/

CREATE TYPE ChildTab AS TABLE OF ChildObj;
/

Create TYPE MainObj as OBJECT (
    KEEY VARCHAR2(5),
    ChildList  ChildTab
);
/

CREATE TABLE TestTableDesi (
 theCol MainObj
);
/

Тип упал. Тип упал. Тип упал. Тип создан. Тип создан. Тип создан. ORA-22913: необходимо указать имя таблицы для столбца или атрибута вложенной таблицы

1 Ответ

1 голос
/ 29 марта 2019

Только что нашел решение здесь. Как создать таблицу объектов Oracle, содержащую вложенные таблицы? Оператор создания таблицы должен выглядеть следующим образом.

CREATE TABLE TestTableDesi (
theCol MainObj
) nested table theCol.ChildList store as ChildList_tab ;
/
...