Oracle sqlplus - определение типизированной таблицы без атрибутов, но с вложенными таблицами

У меня проблема с домашней работой. У меня есть следующие определения типов:

-- Type definitions
CREATE OR REPLACE TYPE languages_table_t AS TABLE of VARCHAR2(20);
/

CREATE OR REPLACE TYPE phones_table_t AS TABLE of NUMBER;
/

CREATE OR REPLACE TYPE tourist_t AS OBJECT (
  -- ...
  -- some simple attrubutes
  -- one attribute of user defined type
  -- more simple attrubutes
  -- ...
) NOT FINAL;
/

CREATE OR REPLACE TYPE guide_t UNDER tourist_t (
  languages   languages_table_t,
  phones      phones_table_t
);
/
-- All types are created successfully


-- table definitions:

CREATE TABLE Tourist OF tourist_t (
  -- all simple attributes with nullity constraints
  CONSTRAINT PK_TOURIST PRIMARY KEY (username),
) NESTED TABLE the_UDT_attr STORE AS the_user_defined_type;
-- Created successfully

CREATE TABLE Guide OF guide_t (
  CONSTRAINT PK_GUIDE PRIMARY KEY (username)
) NESTED TABLE languages STORE AS guide_languages
  NESTED TABLE phones STORE AS guide_phones;
-- returns mystic error

при выполнении последней инструкции создания я получаю следующую ошибку:

CREATE TABLE Guide OF guide_t (
*
ERROR at line 1:
ORA-22913: must specify table name for nested table column or attribute

Я искал эту ошибку, но она кажется слишком специфичной для моих определений, и я не мог найти, как ее исправить. Пожалуйста, любая помощь будет оценена. Мне нужна идея о том, как атаковать такого рода ошибки, как их решать или где об этом читать.

Версия sqlplus:

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0  Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

Если вам нужна какая-либо другая информация, чтобы помочь мне, пожалуйста, спросите, и я обновлю вопрос.

Спасибо!

1 ответ

Решение

Хранение вложенных таблиц также должно быть определено для атрибутов супертипа. Скрипт udt_tables.sql работает, когда я добавляю это в строку 155:

CREATE TABLE Guia OF guia_t (
  CONSTRAINT PK_GUIA PRIMARY KEY (username)
) NESTED TABLE idiomas STORE AS guia_idiomas
  NESTED TABLE telefonos STORE AS guia_telefonos
  NESTED TABLE tipoHitosPreferidos STORE as something;
Другие вопросы по тегам