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

Oracle PL/SQL संग्रह - डेटाबेस में नेस्टेड तालिका बनाएँ

Oracle में, एक नेस्टेड टेबल को डेटाबेस कॉलम के रूप में स्टोर किया जा सकता है। इसका मतलब है कि संपूर्ण नेस्टेड तालिका डेटाबेस तालिका की एक पंक्ति में समाहित है, और डेटाबेस की प्रत्येक पंक्ति में एक अलग नेस्टेड तालिका हो सकती है। डेटाबेस में नेस्टेड टेबल को स्टोर करने के लिए, आपको CREATE TYPE . का उपयोग करना चाहिए पीएल/एसक्यूएल ब्लॉक में टाइप स्टेटमेंट के बजाय नेस्टेड टेबल टाइप बनाने के लिए स्टेटमेंट।

CREATE TYPE . का उपयोग करके , प्रकार डेटा डिक्शनरी में संग्रहीत है और इस प्रकार कॉलम प्रकार के रूप में उपयोग के लिए उपलब्ध है। निम्न उदाहरण दिखाता है कि नेस्टेड तालिका को डेटाबेस कॉलम के रूप में कैसे बनाया जाए।

Oracle PL/SQL - डेटाबेस में नेस्टेड टेबल बनाना

CREATE TYPE BookObj AS OBJECT (
title VARCHAR2(40),
author VARCHAR2(40),
catalog_number NUMBER(4)
);

CREATE TYPE BookList AS TABLE OF BookObj;

CREATE TABLE course_material (
department CHAR(3),
course NUMBER(3),
required_reading BookList )
NESTED TABLE required_reading STORE AS required_tab;

उपरोक्त लिस्टिंग और डेटाबेस में नेस्टेड टेबल बनाने के बारे में ध्यान देने योग्य कई बातें हैं:

  • तालिका प्रकार को CREATE TYPE . के साथ डिज़ाइन किया गया है स्टेटमेंट ताकि इसे डेटा डिक्शनरी में स्टोर किया जा सके।
  • टेबल की परिभाषा में टेबल टाइप का इस्तेमाल किया जाता है, बिल्कुल कॉलम ऑब्जेक्ट की तरह।
  • किसी दिए गए डेटाबेस तालिका में प्रत्येक नेस्टेड तालिका के लिए,  NESTED TABLE उपवाक्य की आवश्यकता है। यह क्लॉज स्टोर टेबल के नाम को दर्शाता है।

एक स्टोर टेबल एक सिस्टम-जनरेटेड टेबल है जिसका उपयोग नेस्टेड टेबल में वास्तविक डेटा को स्टोर करने के लिए किया जाता है। यह डेटा शेष तालिका स्तंभों के साथ इनलाइन संग्रहीत नहीं है; इसे अलग से संग्रहित किया जाता है।

required_reading कॉलम एक REF स्टोर करेगा required_tab . में तालिका, जहां पुस्तकों की सूची संग्रहीत की जाएगी। course_material . की प्रत्येक पंक्ति के लिए , आवश्यक_रीडिंग में आवश्यक_टैब में संबंधित पंक्तियों के लिए एक आरईएफ होता है।

नोट

<ब्लॉकक्वॉट>

स्टोर टेबल (required_tab उपरोक्त उदाहरण में) किसी अन्य स्कीमा में मौजूद हो सकता है और मुख्य तालिका से अलग भंडारण पैरामीटर हो सकता है। स्टोर टेबल का वर्णन किया जा सकता है, और user_tables . में मौजूद है , लेकिन सीधे पहुँचा नहीं जा सकता।

यदि आप सीधे स्टोर टेबल को क्वेरी या संशोधित करने का प्रयास करते हैं, तो आपको Oracle त्रुटि मिलेगी "ORA-22812:नेस्टेड टेबल कॉलम की स्टोरेज टेबल को संदर्भित नहीं कर सकता"। स्टोर टेबल की सामग्री को मुख्य टेबल पर SQL के माध्यम से हेरफेर किया जाता है।

यह भी देखें:

  • Oracle PL/SQL - संग्रह (नेस्टेड टेबल)

  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 संख्या से C# दशमलव

  2. wf_java_deferred कतार का पुनर्निर्माण कैसे करें

  3. एक कमजोर टाइप किए गए SYS_REFCURSOR चर के% ROWTYPE को कैसे घोषित करें?

  4. एक संग्रहित खरीद चलाने के लिए हाइबरनेट 4 में देशी ओरेकल कनेक्शन के लिए एक हैंडल प्राप्त करना

  5. जेपीए - एक्लिप्सलिंक - डिफ़ॉल्ट स्कीमा कैसे बदलें