Можете да използвате обекти, дефинирани в SQL Scope с помощта на наследяване:
Настройка на схема на Oracle 11g R2 :
CREATE TYPE abstract_item IS OBJECT ( име VARCHAR2(64)) NOT FINAL NOT INSTANTIABLE/CREATE TYPE t_items IS TABLE OF abstract_item/CREATE TYPE t_item UNDER abstract_item ( children t_items) INSTANTIABLE/
Заявка 1 :
SELECT t_item( '1', t_items( t_item( '1.1', t_items() ), t_item( '1.2', t_items( t_item( '1.2.1', null ) ) ), t_item( ' 1.3', null ) ) )ОТ ДВОЙНО
Резултати :(SQLFiddle не го показва добре - но работи без грешки)
<предварителен код>| T_ITEM('1',T_ITEMS(T_ITEM('1.1',T_ITEMS()),T_ITEM('1.2',T_ITEMS(T_ITEM('1.2.1',NULL))),T_ITEM('1.3',NULL))) ||------------------------------------------------ -------------------------------------------------- -----------|| [email protected] |Можете да използвате подобна декларация в PL/SQL:
ДЕКЛАРИРАНЕ на елементи t_item;BEGIN елементи =t_item( 'Име на елемент', t_items( /* ... */ ) );END;/