Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पीएल/एसक्यूएल ब्लॉक में एक रिकॉर्ड प्रकार को परिभाषित करें जो स्वयं के संग्रह को संदर्भित करता है

आप इनहेरिटेंस का उपयोग करके SQL स्कोप में परिभाषित ऑब्जेक्ट्स का उपयोग कर सकते हैं:

SQL Fiddle

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;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ODP.NET कनेक्शन स्ट्रिंग:डेटा स्रोत में क्या होता है?

  2. WSJDBCConnection Oracle jdbc कनेक्शन प्रकार की वस्तुओं को लपेटता नहीं है

  3. ODP.NET के साथ Oracle डेटाबेस परिवर्तन अधिसूचना काम नहीं करती है

  4. मूल्यों पर लूपिंग, गतिशील क्वेरी बनाना और परिणाम सेट में जोड़ना

  5. Oracle डेटाटाइप त्रुटि