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

Oracle डाटाबेस में PL/SQL सबरूटीन्स के लिए कॉलिंग नोटेशन

चूंकि पिछले कुछ ट्यूटोरियल पीएल/एसक्यूएल सबरूटीन्स जैसे पीएल/एसक्यूएल फ़ंक्शंस और संग्रहीत प्रक्रियाओं के बारे में थे, इसलिए उनके कॉलिंग नोटेशन के बारे में बात करना अनिवार्य हो जाता है। पीएल/एसक्यूएल सबरूटीन्स की अवधारणाओं को सीखना तब तक पूर्ण नहीं माना जाएगा जब तक हम उनके कॉलिंग नोटेशन को भी नहीं सीख लेते।

PL/SQL सबरूटीन्स के लिए कॉलिंग नोटेशन क्या है?

कॉलिंग नोटेशन एक सबरूटीन के पैरामीटर जैसे पीएल/एसक्यूएल फ़ंक्शन या संग्रहीत प्रक्रिया को मान प्रदान करने का एक तरीका है।

सबरूटीन्स के लिए कॉलिंग नोटेशन के प्रकार

Oracle PL/SQL में 3 प्रकार के कॉलिंग नोटेशन हैं। ये हैं:

  1. स्थितिगत संकेतन
  2. नामांकित संकेतन और
  3. मिश्रित कॉलिंग संकेतन

स्थानीय कॉलिंग नोटेशन

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

स्थितीय संकेतन में डेटाटाइप और वास्तविक पैरामीटर की स्थिति औपचारिक पैरामीटर से मेल खाना चाहिए।

सुझाया गया पढ़ना:वास्तविक पैरामीटर बनाम औपचारिक पैरामीटर

उदाहरण:PL/SQL सबरूटीन्स को कॉल करने के लिए स्थितीय संकेतन।

प्रक्रिया बनाएं या बदलें emp_sal(dep_id NUMBER, sal_raise NUMBER) ISBEGIN   अद्यतन कर्मचारी SET वेतन =वेतन * Sal_raise जहां विभाग_आईडी =dep_id; DBMS_OUTPUT.PUT_LINE ('वेतन सफलतापूर्वक अपडेट किया गया');END; // पूर्व> 

यह वही उदाहरण है जो हमने पीएल/एसक्यूएल ट्यूटोरियल 42 में किया था कि कुछ मामूली बदलावों के बावजूद पैरामीटर के साथ संग्रहीत प्रक्रिया कैसे बनाएं। अब अगर हम पोजिशनल कॉलिंग नोटेशन का उपयोग करते हैं तो हमें उपरोक्त प्रक्रिया के दोनों मापदंडों को उसी तरह से मूल्यों की आपूर्ति करनी होगी, जिस तरह से उन्हें घोषित किया गया है।

Oracle डेटाबेस में स्थितीय संकेतन का उपयोग करके संग्रहीत प्रक्रिया कॉल

निष्पादित emp_sal(40,2);

इस सरल प्रक्रिया कॉल में, मान 40 औपचारिक पैरामीटर dep_id के अनुरूप है और मान 2 पैरामीटर sal_raise के अनुरूप है।

नामांकित कॉलिंग नोटेशन

नामांकित कॉलिंग नोटेशन आपको उनके नामों का उपयोग करके औपचारिक मापदंडों को मान पास करने देता है। यह बदले में आपको केवल आवश्यक या अनिवार्य मापदंडों के लिए मान निर्दिष्ट करने देगा।

यह कॉलिंग नोटेशन तब उपयोगी होता है जब आपके पास पैरामीटर के साथ सबरूटीन होता है जहां उनमें से कुछ पैरामीटर अनिवार्य होते हैं और कुछ वैकल्पिक होते हैं और आप मानों को केवल अनिवार्य लोगों को पास करना चाहते हैं।

एसोसिएशन ऑपरेटर

औपचारिक मापदंडों को उनके नाम का उपयोग करके मान निर्दिष्ट करने के लिए हम एसोसिएशन ऑपरेटर का उपयोग करते हैं। यह बराबर (=) चिह्न और (>) चिह्न से बड़ा का संयोजन है। हम ऑपरेटर के बाईं ओर औपचारिक पैरामीटर का नाम और वह मान जो आप ऑपरेटर के दाईं ओर असाइन करना चाहते हैं, लिखते हैं।

पीएल/एसक्यूएल सबरूटीन्स को कॉल करने के लिए नामांकित कॉलिंग नोटेशन का उदाहरण

फ़ंक्शन बनाएं या बदलें add_num(var_1 NUMBER, var_2 NUMBER DEFAULT 0, var_3 NUMBER ) रिटर्न नंबर ISBEGIN RETURN var_1 + var_2 + var_3;END;/

उपरोक्त फ़ंक्शन में 3 पैरामीटर हैं। इन 3 मापदंडों में से 2 अनिवार्य हैं और 1 डिफ़ॉल्ट मान 0 के साथ वैकल्पिक है।

आप स्थितीय संकेतन का उपयोग करके इस फ़ंक्शन को कॉल कर सकते हैं। लेकिन इसका एक प्रतिबंध है जिसे आपको पूरा करना होगा और वह यह है कि आपको सभी औपचारिक मापदंडों को उसी क्रम में मूल्यों की आपूर्ति करनी होगी जिसमें वे घोषित किए गए हैं और औपचारिक और वास्तविक मापदंडों के डेटाटाइप का मिलान होना चाहिए।

इसलिए यदि आप वैकल्पिक पैरामीटर को छोड़ना चाहते हैं और उनके डिफ़ॉल्ट मान का उपयोग करना चाहते हैं या आप उस पैरामीटर के क्रम को भूल गए हैं जिसमें उन्हें घोषित किया गया था! तब आपके लिए पोजिशनल नोटेशन का उपयोग करके उपरोक्त सबरूटीन को कॉल करना थोड़ा मुश्किल होगा। ऐसे में आप Named Calling Notation का फायदा उठा सकते हैं। यह कॉलिंग नोटेशन आपको अपने सबरूटीन्स को कॉल करने में वांछित लचीलापन प्रदान करेगा।

Oracle डेटाबेस में नामांकित कॉलिंग नोटेशन का उपयोग करके PL/SQL फ़ंक्शन कॉल

DECLARE var_result NUMBER;BEGIN var_result :=add_num(var_3 => 5, var_1 =>2); DBMS_OUTPUT.put_line('Result ->' || var_result);END;

मैंने अपने YouTube चैनल पर इसी विषय पर वीडियो ट्यूटोरियल में PL/SQL फ़ंक्शन कॉल के बारे में विस्तार से बताया है।

पीएल/एसक्यूएल सबरूटीन्स को कॉल करने के लिए मिश्रित कॉलिंग नोटेशन

जैसा कि मिश्रित कॉलिंग नोटेशन में नाम से पता चलता है, आप नामित के साथ-साथ स्थितीय कॉलिंग नोटेशन के संयोजन का उपयोग करके सबरूटीन को कॉल कर सकते हैं। मिक्स्ड कॉलिंग नोटेशन बहुत मददगार होता है जहां पैरामीटर सूची को पहले सभी अनिवार्य पैरामीटर और बाद में वैकल्पिक पैरामीटर के साथ परिभाषित किया जाता है।

पीएल/एसक्यूएल सबरूटीन्स को कॉल करने के लिए मिश्रित कॉलिंग नोटेशन का उदाहरण

यहां अनाम ब्लॉक है जिसमें हम उसी फ़ंक्शन को कॉल कर रहे हैं add_num ( ) जिसे हमने कॉलिंग नोटेशन नाम देते समय कोड किया था।

 var_result NUMBER घोषित करें; var_result शुरू करें:=add_num (var_1 => 10, 30, var_3 =>19); DBMS_OUTPUT.put_line('Result ->' || var_result);END;

इस प्रकार हम PL/SQL सबरूटीन्स को कॉल करने के लिए मिश्रित कॉलिंग नोटेशन का उपयोग करते हैं।

इसे स्वयं आज़माएं

उपरोक्त अवधारणाओं के ज्ञान का उपयोग करके निम्नलिखित प्रश्नों को हल करने का प्रयास करें:

दो नंबरों की अदला-बदली के लिए पैरामीटर के साथ एक 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. ऑरैकल एसक्यूएल से केवल 1 पंक्ति का चयन कैसे करें?

  2. Oracle में एकाधिक पंक्तियाँ सम्मिलित करने के 4 तरीके

  3. मैनुअल डीबी अपग्रेड के बाद ग्रिड नियंत्रण का उन्नयन

  4. ओरेकल ट्रेस फ़ाइल से गतिरोध त्रुटि का कारण ढूँढना

  5. Oracle से कनेक्ट करने के लिए एक लॉगिंग हैंडलर बनाना?