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

Oracle डेटाबेस में PL/SQL VARRAYs का परिचय

VARRAYs को 1998 में Oracle 8i में नेस्टेड टेबल प्रकार संग्रह के एक संशोधित संस्करण के रूप में लॉन्च किया गया था, जिसकी चर्चा हमने पिछले ब्लॉगों में की है।

सुझाई गई रीडिंग:नेस्टेड टेबल कैसे बनाएं -

  • पीएल/एसक्यूएल ब्लॉक तत्व के रूप में
  • डेटाबेस ऑब्जेक्ट के रूप में
  • उपयोगकर्ता-परिभाषित डेटाटाइप का उपयोग करना

इसके अलावा अब आप परीक्षा देकर विषय पर अपने ज्ञान का परीक्षण कर सकते हैं यहां।

VARRAY एक महत्वपूर्ण विषय है क्योंकि यह देखा जाता है कि आमतौर पर प्रमाणन परीक्षा में इस पर हमेशा एक प्रश्न होता है। किसी भी भ्रम को कम करने के लिए हम सबसे पहले VARRAYs संग्रह के परिचय पर एक संक्षिप्त नज़र डालेंगे।

VARRAYs जो वैरिएबल साइज़ Arrays का संक्षिप्त रूप है 1998 में Oracle 8i में नेस्टेड तालिकाओं के संशोधित प्रारूप के रूप में पेश किया गया था। स्टोरेज ओरिएंटेशन में बड़े बदलाव देखे जा सकते हैं। कार्यान्वयन में कोई ध्यान देने योग्य परिवर्तन नहीं हैं, लेकिन नेस्टेड तालिकाओं की तुलना में उनका भंडारण अभिविन्यास पूरी तरह से अलग है।

नेस्टेड तालिका के विपरीत, जिसके भंडारण के लिए बाहरी तालिका की आवश्यकता होती है, VARRAYs को उनके मूल रिकॉर्ड के साथ मूल तालिका में कच्चे मान के रूप में संग्रहीत किया जाता है। इसका मतलब है कि अब STORE AS क्लॉज की जरूरत नहीं है। ओह, क्या राहत है, कोई अनावश्यक आईओ नहीं है और इसके शीर्ष पर प्रदर्शन में वृद्धि हुई है।

क्या हम VARRAYs को सहेज सकते हैं और उनका पुन:उपयोग कर सकते हैं?

नेस्टेड टेबल्स के समान VARRAYs लगातार प्रकार के संग्रह होते हैं, जिसका अर्थ है कि उन्हें डेटाबेस ऑब्जेक्ट के रूप में बनाया जा सकता है जिसे बाद में उपयोग के लिए सहेजा जा सकता है। VARRAYs को PL/SQL ब्लॉक के सदस्य के रूप में भी बनाया जा सकता है। VARRAY का दायरा जिसे PL/SQL ब्लॉक के अंदर घोषित किया गया है, उस ब्लॉक तक सीमित है जिसमें इसे बनाया गया है।

क्या VARRAYs बंधे हैं या असीमित हैं?

नेस्टेड टेबल के विपरीत VARRAYs संग्रह के बंधे हुए रूप हैं। बाध्य से मेरा मतलब है, आपको यह तय करना होगा कि आप अपने संग्रह में कितने तत्वों को स्टोर करना चाहते हैं, इसे घोषित करते समय। जबकि नेस्टेड टेबल में, जो असीमित प्रकार का संग्रह है, तत्वों की संख्या पर कोई ऊपरी सीमा नहीं है।

VARRAYs संग्रहण तंत्र

VARRAYs का भंडारण तंत्र सबसे बड़ा अंतर है जो उन्हें नेस्टेड टेबल की तुलना में बेहतर विकल्प बनाता है। नेस्टेड तालिकाओं के विपरीत, जिन्हें इसके भंडारण के लिए बाहरी तालिका की आवश्यकता होती है, VARRAYs को उनके मूल रिकॉर्ड के साथ मूल तालिका में कच्चे मान के रूप में संग्रहीत किया जाता है। इसका मतलब है कि स्टोर एएस क्लॉज या अलग स्टोरेज टेबल की कोई आवश्यकता नहीं है।

VARRAYs का इन-लाइन स्टोरेज डिस्क इनपुट/आउटपुट (I/O) को कम करने में मदद करता है जो VARRAYs को नेस्टेड टेबल की तुलना में अधिक प्रदर्शन कुशल बनाता है। लेकिन जब VARRAYs 4K डेटा से अधिक हो जाता है तो Oracle आउट-ऑफ़-लाइन संग्रहण तंत्र का अनुसरण करता है और VARRAYs को LOB के रूप में संग्रहीत करता है।

PL/SQL VARRAYs बनाने के लिए सिंटैक्स

इस खंड में हम VARRAYs बनाने के सिंटैक्स को इस रूप में देखेंगे

  • डेटाबेस ऑब्जेक्ट और
  • पीएल/एसक्यूएल ब्लॉक के सदस्य।

आप मेरे YouTube चैनल पर उसी विषय पर वीडियो देख सकते हैं, जहां मैंने इन दोनों वाक्य-विन्यास के बारे में विस्तार से बताया है।

VARRAY डेटाबेस ऑब्जेक्ट के रूप में

CREATE [OR REPLACE] TYPE type_name
IS {VARRAY | VARYING ARRAY} (size_limit) OF element_type;

PL/SQL ब्लॉक के सदस्य के रूप में VARRAY

DECLARE
TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF
element_type;

उपरोक्त दोनों सिंटैक्स नेस्टेड टेबल के समान हैं, सिवाय इसके कि हमारे पास एक अतिरिक्त क्लॉज है जो कि Size_Limit है। आकार सीमा एक संख्यात्मक पूर्णांक है जो इंगित करेगा कि आपके VARRAY में कितने तत्व हो सकते हैं।

हमेशा नेस्टेड टेबल के समान याद रखें, हम केवल PL/SQL ब्लॉक के डिक्लेरेशन सेक्शन में VARRAY घोषित कर सकते हैं।

VARRAYs प्रकार संग्रह की आकार सीमा को कैसे संशोधित करें?

ALTER TYPE DDL स्टेटमेंट का उपयोग करके VARRAY की आकार सीमा को बदला जा सकता है।

ALTER TYPE type_name MODIFY LIMIT new-size-limit [INVALIDATE | CASCADE]

कहां:

प्रकार बदलें एक आरक्षित वाक्यांश है जो संकलक को इंगित करता है कि आप कौन सी डीडीएल क्रिया करना चाहते हैं।

नाम टाइप करें उस प्रकार का नाम है जिसे आप बदलना चाहते हैं।

सीमा संशोधित करें एक खंड है जो संकलक को सूचित करता है कि उपयोगकर्ता आकार सीमा को संशोधित करना चाहता है।

नई-आकार-सीमा एक पूर्णांक है जो आपके VARRAY की नई आकार सीमा होगी।

अमान्य करें खंड एक वैकल्पिक खंड है जो बिना किसी जाँच तंत्र के सभी आश्रित वस्तुओं को अमान्य कर देगा।

कैस्केड क्लॉज फिर से एक वैकल्पिक खंड है जो निर्भर प्रकार और तालिका में परिवर्तन का प्रचार करेगा।

 

VARRAY प्रकार के संग्रह को कैसे छोड़ें?

VARRAY टाइप ड्रॉप करने के लिए आप DROP DDL स्टेटमेंट की मदद ले सकते हैं।

DROP TYPE type_name [FORCE];

कहां:

ड्रॉप प्रकार

एक डीडीएल स्टेटमेंट है जिसके इस्तेमाल से आप अपने डेटाबेस पर बनाए गए किसी भी प्रकार को ड्रॉप कर सकते हैं।

नाम टाइप करें

प्रकार का नाम पहले से बनाए गए प्रकार का नाम है जिसे आप छोड़ना चाहते हैं।

बल

प्रकार को छोड़ने के लिए फ़ोर्स निर्दिष्ट करें, भले ही उसके पास निर्भर डेटाबेस ऑब्जेक्ट हों। Oracle डेटाबेस छोड़े जाने वाले प्रकार के आधार पर अप्रयुक्त सभी स्तंभों को चिह्नित करता है, और वे स्तंभ अप्राप्य हो जाते हैं। याद रखें कि यह ऑपरेशन पुनर्प्राप्त करने योग्य नहीं है और निर्भर टेबल या कॉलम में डेटा पहुंच योग्य नहीं हो सकता है।

आशा है आपने कुछ नया सीखा होगा। अब आप यहां परीक्षा देकर विषय पर अपने ज्ञान का परीक्षण कर सकते हैं। कृपया इस ब्लॉग को अपने सोशल मीडिया पर शेयर करके आगे बढ़ने में हमारी मदद करें। इस तरह आप अपने दोस्तों को भी सीखने में मदद कर सकते हैं। धन्यवाद और आपका दिन शुभ हो!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AUTONOMOUS_TRANSACTION

  2. क्या Oracle 11g क्लाइंट के लिए ODP.NET आवश्यक है?

  3. Oracle के साथ चुनिंदा परिणामों को स्थानांतरित करें

  4. Oracle क्लाउड और ऑटोनॉमस डेटाबेस पर निःशुल्क प्रमाणन परीक्षा की नई तिथियां

  5. OracleDataReader के लिए समयबाह्य। विधि पढ़ें