PL/SQL संग्रह विधि DELETE के बाद, Oracle डेटाबेस में EXTEND प्रक्रिया सूची में दूसरी है। हमने इस प्रक्रिया को बार-बार इस्तेमाल किया है लेकिन इसे विस्तार से जानने का मौका कभी नहीं मिला। इस प्रकार मैंने पूरे ब्लॉग को इस संग्रह पद्धति को समर्पित करने का निर्णय लिया है। तो बैठिए और ब्लॉग का आनंद लीजिए।
यदि आप पीएल/एसक्यूएल में नए हैं और नहीं जानते कि प्रक्रियाएं क्या हैं तो हमारे पास आपके लिए एक ट्यूटोरियल है। यहां क्लिक करें और Oracle डाटाबेस में PL/SQL प्रक्रियाओं के बारे में जानें।
पीएल/एसक्यूएल संग्रह विधि विस्तार क्या है?
DELETE के समान, संग्रह विधि EXTEND एक अतिभारित PL/SQL प्रक्रिया है जिसका उपयोग संग्रह में तत्वों को जोड़ने के लिए किया जाता है।
Oracle Database में हम कितने तरीकों से EXTEND प्रक्रिया को कॉल कर सकते हैं?
पीएल/एसक्यूएल संग्रह प्रक्रिया एक अतिभारित प्रक्रिया है। इसलिए, इसका मतलब है कि हम इसी प्रक्रिया को अलग-अलग तरीकों से कहते हैं। संग्रहण प्रक्रिया को विस्तारित करने के लिए कॉल करने के ये विभिन्न तरीके हैं -
- विस्तार:बिना किसी तर्क के प्रक्रिया कॉल बढ़ाएँ।
कॉलिंग PL/SQL संग्रह प्रक्रिया बिना किसी तर्क के बढ़ाएँ संलग्न करें एक अकेला तत्व संग्रह के लिए।
- विस्तार (एन):एक तर्क के साथ प्रक्रिया कॉल बढ़ाएँ।
संग्रह प्रक्रिया एक तर्क के साथ बढ़ाएँ आपके द्वारा प्रक्रिया के तर्क के रूप में उल्लिखित NULL तत्वों की संख्या को जोड़ देगा . लेकिन, याद रखें कि तर्क एक मान्य पूर्णांक मान होना चाहिए।
- विस्तार (n, v):दो तर्कों के साथ प्रक्रिया कॉल बढ़ाएँ।
इस मामले में पहला तर्क तत्वों की संख्या को इंगित करता है जिसे संग्रह में जोड़ा जाएगा। इसके अलावा टी वह दूसरा तर्क अनुक्रमणिका संख्या है। इसके अलावा, इसके मूल्य की प्रतिलिपि बनाई जाएगी और संग्रह के नए संलग्न तत्वों में से प्रत्येक को सौंपा जाएगा। विस्तार का यह रूप "शून्य तत्व नहीं" वाले संग्रह के लिए आवश्यक है।
क्या हम तीनों प्रकार के संग्रहों के साथ PL/SQL संग्रहण विधि EXTEND का उपयोग कर सकते हैं?
नहीं, संग्रह विधि विस्तार केवल नेस्टेड टेबल और VARRAYs संग्रह करने के लिए लागू किया जा सकता है। इसके अलावा, EXTEND का उपयोग संग्रह सहयोगी सरणियों के साथ नहीं किया जा सकता है।
क्या आप हमें Oracle डेटाबेस में संग्रहण विधि EXTEND प्रक्रिया का विवरण दिखा सकते हैं?
हाँ हाँ, क्यों नहीं! पीएल/एसक्यूएल संग्रह विधि विस्तार के अतिभारित विनिर्देश यहां दिए गए हैं —
एक तर्क के साथ प्रक्रिया का विस्तार करें:
PROCEDURE EXTEND (n pls_integer := 1);
संग्रह विधि दो तर्कों के साथ विस्तारित होती है:
PROCEDURE EXTEND (n pls_integer, v pls_integer);
हमें अपने कोड में EXTEND संग्रहण विधि का उपयोग कब करना चाहिए?
जब आपके कोड में एक संग्रह (या तो नेस्टेड टेबल या VARRAY) होता है जो पर्याप्त संख्या में तत्वों के साथ प्रारंभ नहीं होता है। उस स्थिति में आपको पहले PL/SQL संग्रह विधि EXTEND का उपयोग करना चाहिए।
PL/SQL संग्रह विधि EXTEND की क्या आवश्यकता है?
ओरेकल डेटाबेस में संग्रह के साथ काम करते समय घोषित करना, परिभाषित करना और आरंभ करना तीन चरण हैं। लेकिन डेटा को इंडेक्स में स्टोर करने से पहले हमें इसके लिए एक मेमोरी स्लॉट बनाना होगा। नतीजतन, PL/SQL संग्रह प्रक्रिया EXTEND हमें उस डेटा के लिए वह मेमोरी स्लॉट बनाने में मदद करती है।
क्या होगा यदि हमने संग्रह के अंत को हटा दिया है या काट दिया है?
उस स्थिति में पीएल/एसक्यूएल संग्रह विधि EXTEND हटाए गए तत्वों को छोड़ देगी जब यह एक नया अनुक्रमणिका निर्दिष्ट करेगी।
क्या होगा यदि मैं संग्रह विधि EXTEND को एक गैर-आरंभिक नेस्टेड तालिका या VARRAY पर लागू करूं?
यदि PL/SQL संग्रह विधि EXTEND को एक आरंभिक संग्रह पर लागू किया जाता है तो यह एक COLLECTION_IS_NULL दिखाएगा अपवाद।
और क्या होगा यदि मैं किसी VARRAY को उसकी निर्धारित सीमा से अधिक विस्तारित करने का प्रयास करूं?
यदि संग्रह विधि EXTEND का उपयोग VARRAY के साथ इसकी निर्धारित सीमा से आगे बढ़ाने के लिए किया जाता है तो आपको एक और अपवाद का सामना करना पड़ेगा जो SUBSCRIPT_BEYOND_LIMIT. है।
अरे, मनीष! क्या हम कभी इस संग्रह विधि EXTEND का एक उदाहरण देखेंगे?
हां, हम निश्चित रूप से ऊपर उल्लिखित प्रत्येक PL/SQL संग्रह प्रक्रिया EXTEND कॉल का प्रदर्शन करेंगे। VARRAY के साथ एक्सटेंड प्रोसीजर कॉल के अलावा।
1. PL/SQL संग्रह प्रक्रिया बिना किसी तर्क के विस्तारित होती है।
SET SERVEROUTPUT ON; DECLARE TYPE my_nestedTable IS TABLE OF number; nt_obj my_nestedTable := my_nestedTable(); BEGIN nt_obj.EXTEND; nt_obj(1) := 10; DBMS_OUTPUT.PUT_LINE ('Data at index 1 is '||nt_obj(1)); END; /
2. संग्रह प्रक्रिया एक तर्क के साथ विस्तारित होती है।
SET SERVEROUTPUT ON; DECLARE TYPE my_nestedTable IS TABLE OF number; nt_obj my_nestedTable := my_nestedTable(); BEGIN nt_obj.EXTEND(3); nt_obj(1) := 10; nt_obj(2) := 20; nt_obj(3) := 30; DBMS_OUTPUT.PUT_LINE ('Data at index 1 is '||nt_obj(1)); DBMS_OUTPUT.PUT_LINE ('Data at index 2 is '||nt_obj(2)); DBMS_OUTPUT.PUT_LINE ('Data at index 3 is '||nt_obj(3)); END; /
3. PL/SQL संग्रह प्रक्रिया दो तर्कों के साथ विस्तारित होती है।
SET SERVEROUTPUT ON; DECLARE TYPE my_nestedTable IS TABLE OF number; nt_obj my_nestedTable := my_nestedTable(); BEGIN nt_obj.EXTEND; nt_obj(1) := 28; DBMS_OUTPUT.PUT_LINE ('Data at index 1 is '||nt_obj(1)); nt_obj.EXTEND(5,1); DBMS_OUTPUT.PUT_LINE ('Data at index 4 is '||nt_obj(4)); END; /
4. VARRAY के साथ संग्रह प्रक्रिया का विस्तार (कोई तर्क नहीं)
SET SERVEROUTPUT ON; DECLARE TYPE my_Varray IS VARRAY (5) OF NUMBER; vry_obj my_Varray := my_Varray(); BEGIN vry_obj.EXTEND; vry_obj(1) := 10; DBMS_OUTPUT.PUT_LINE('Data at index 1 is '||vry_obj(1)); END; /
हमारे YouTube चैनल पर वीडियो ट्यूटोरियल में उपरोक्त सभी के प्रत्येक LOC (4 को छोड़कर) के बारे में विस्तार से बताया गया है।
आशा है कि हमने PL/SQL Collection Method EXTEND पर सभी संभावित प्रश्नों पर चर्चा की है जिनका सामना आप अपने Oracle db प्रमाणन परीक्षा के साथ-साथ अपने साक्षात्कार में कर सकते हैं। इसके अलावा, यदि आपको प्रमाणन के बारे में कोई भ्रम है तो आप हमारी Oracle डेटाबेस प्रमाणन परीक्षा मार्गदर्शिका देख सकते हैं।