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;