आप इनहेरिटेंस का उपयोग करके SQL स्कोप में परिभाषित ऑब्जेक्ट्स का उपयोग कर सकते हैं:
Oracle 11g R2 स्कीमा सेटअप :
CREATE TYPE abstract_item IS OBJECT (
name 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 )
)
)
FROM DUAL
परिणाम :(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 में इसी तरह की घोषणा का उपयोग कर सकते हैं:
DECLARE
items t_item;
BEGIN
items = t_item( 'Item Name', t_items( /* ... */ ) );
END;
/