PL/ SQL ब्लॉक: संरचना, वाक्यविन्यास, अनाम उदाहरण
PL/SQL ब्लॉक क्या है?
PL/SQL में, कोड को सिंगल लाइन फ़ॉर्मेट में निष्पादित नहीं किया जाता है, बल्कि इसे हमेशा कोड को ब्लॉक नामक एक ही तत्व में समूहीकृत करके निष्पादित किया जाता है। इस ट्यूटोरियल में, आप इन ब्लॉक के बारे में जानने जा रहे हैं।
ब्लॉक में PL/SQL और SQL दोनों निर्देश होते हैं। इन सभी निर्देशों को एक साथ निष्पादित किया जाएगा, न कि एक बार में एक निर्देश निष्पादित किया जाएगा।
ब्लॉक संरचना
PL/SQL ब्लॉक में एक पूर्व-निर्धारित संरचना होती है जिसमें कोड को समूहीकृत किया जाना होता है। नीचे PL/SQL ब्लॉक के विभिन्न अनुभाग दिए गए हैं।
- घोषणा अनुभाग
- निष्पादन अनुभाग
- अपवाद-हैंडलिंग अनुभाग
नीचे दिया गया चित्र विभिन्न PL/SQL ब्लॉक और उनके अनुभाग क्रम को दर्शाता है।
घोषणा अनुभाग
यह PL/SQL ब्लॉक का पहला खंड है। यह खंड एक वैकल्पिक भाग है। यह वह खंड है जिसमें ब्लॉक में आवश्यक चर, कर्सर, अपवाद, उपप्रोग्राम, प्रैग्मा निर्देश और संग्रह की घोषणा की जाएगी। नीचे इस भाग की कुछ और विशेषताएँ दी गई हैं।
- यह विशेष अनुभाग वैकल्पिक है और यदि कोई घोषणा आवश्यक न हो तो इसे छोड़ा जा सकता है।
- यदि मौजूद हो तो यह PL/SQL ब्लॉक का पहला खंड होना चाहिए।
- यह खंड ट्रिगर्स और अनाम ब्लॉक के लिए 'DECLARE' कीवर्ड से शुरू होता है। अन्य सबप्रोग्राम के लिए, यह कीवर्ड मौजूद नहीं होगा। इसके बजाय, सबप्रोग्राम नाम परिभाषा के बाद का भाग घोषणा अनुभाग को चिह्नित करता है।
- इस अनुभाग के बाद हमेशा निष्पादन अनुभाग आना चाहिए।
निष्पादन अनुभाग
निष्पादन भाग मुख्य और अनिवार्य भाग है जो वास्तव में इसके अंदर लिखे गए कोड को निष्पादित करता है। PL / SQL इस ब्लॉक से निष्पादन योग्य कथनों की अपेक्षा करता है यह एक खाली ब्लॉक नहीं हो सकता है, यानी, इसमें कम से कम एक वैध निष्पादन योग्य कोड लाइन होनी चाहिए। नीचे इस भाग की कुछ और विशेषताएँ दी गई हैं।
- इसमें PL/SQL कोड और SQL कोड दोनों हो सकते हैं।
- इसमें एक या कई ब्लॉक नेस्टेड ब्लॉक के रूप में हो सकते हैं।
- यह अनुभाग 'BEGIN' कीवर्ड से शुरू होता है।
- इस अनुभाग के बाद या तो 'अंत' या अपवाद-हैंडलिंग अनुभाग (यदि मौजूद हो) होना चाहिए
अपवाद-हैंडलिंग अनुभाग
प्रोग्राम में अपवाद अपरिहार्य है जो रन-टाइम पर होता है और इसे संभालने के लिए Oracle ब्लॉक में अपवाद-हैंडलिंग अनुभाग प्रदान किया गया है। इस अनुभाग में PL/SQL कथन भी हो सकते हैं। यह PL/SQL ब्लॉक का एक वैकल्पिक अनुभाग है।
- यह वह अनुभाग है जहां निष्पादन ब्लॉक में उठाए गए अपवाद को संभाला जाता है।
- यह अनुभाग PL/SQL ब्लॉक का अंतिम भाग है।
- इस अनुभाग से नियंत्रण कभी भी निष्पादन ब्लॉक पर वापस नहीं आ सकता।
- यह अनुभाग कीवर्ड 'अपवाद' से शुरू होता है।
- इस अनुभाग के बाद हमेशा 'END' कीवर्ड आना चाहिए।
कीवर्ड 'END' PL/SQL ब्लॉक के अंत को चिह्नित करता है।
PL/SQL ब्लॉक सिंटैक्स
नीचे PL/SQL ब्लॉक संरचना का सिंटैक्स दिया गया है।
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
नोट: ब्लॉक के बाद हमेशा '/' होना चाहिए जो ब्लॉक के अंत के बारे में कंपाइलर को सूचना भेजता है।
PL/SQL ब्लॉक के प्रकार
PL/SQL ब्लॉक मुख्यतः दो प्रकार के होते हैं।
- अनाम ब्लॉक
- नामित ब्लॉक
अनाम ब्लॉक
अनाम ब्लॉक PL/SQL ब्लॉक होते हैं, जिन्हें कोई नाम नहीं दिया जाता। उन्हें उसी सत्र में बनाया और इस्तेमाल किया जाना चाहिए क्योंकि उन्हें सर्वर में डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत नहीं किया जाएगा।
चूँकि उन्हें डेटाबेस में संग्रहीत करने की आवश्यकता नहीं है, इसलिए उन्हें किसी संकलन चरण की आवश्यकता नहीं है। उन्हें सीधे लिखा और निष्पादित किया जाता है, और संकलन और निष्पादन एक ही प्रक्रिया में होता है।
नीचे बेनामी ब्लॉकों की कुछ और विशेषताएं दी गई हैं।
- इन ब्लॉकों के लिए कोई संदर्भ नाम निर्दिष्ट नहीं है।
- ये ब्लॉक 'DECLARE' या 'BEGIN' कीवर्ड से शुरू होते हैं।
- चूँकि इन ब्लॉकों का कोई संदर्भ नाम नहीं है, इसलिए इन्हें बाद के उद्देश्य के लिए संग्रहीत नहीं किया जा सकता। इन्हें उसी सत्र में बनाया और निष्पादित किया जाएगा।
- वे अन्य नामित ब्लॉकों को कॉल कर सकते हैं, लेकिन अनाम ब्लॉक को कॉल करना संभव नहीं है क्योंकि इसका कोई संदर्भ नहीं है।
- इसमें नेस्टेड ब्लॉक हो सकते हैं जो नामित या अनाम हो सकते हैं। इसे किसी भी ब्लॉक में नेस्टेड किया जा सकता है।
- इन ब्लॉकों में ब्लॉक के तीनों खंड हो सकते हैं, जिसमें निष्पादन खंड अनिवार्य है, अन्य दो खंड वैकल्पिक हैं।
नामित ब्लॉक
नामित ब्लॉकों के लिए एक विशिष्ट और अद्वितीय नाम होता है। उन्हें सर्वर में डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत किया जाता है। चूंकि वे डेटाबेस ऑब्जेक्ट के रूप में उपलब्ध हैं, इसलिए उन्हें तब तक संदर्भित या उपयोग किया जा सकता है जब तक कि वे सर्वर पर मौजूद हों। नामित ब्लॉकों के लिए संकलन प्रक्रिया उन्हें डेटाबेस ऑब्जेक्ट के रूप में बनाते समय अलग से होती है।
नीचे नामित ब्लॉकों की कुछ और विशेषताएं दी गई हैं।
- इन ब्लॉकों को अन्य ब्लॉकों से बुलाया जा सकता है।
- ब्लॉक संरचना एक अनाम ब्लॉक के समान है, सिवाय इसके कि यह कभी भी 'DECLARE' कीवर्ड से शुरू नहीं होगी। इसके बजाय, यह 'CREATE' कीवर्ड से शुरू होगी जो कंपाइलर को इसे डेटाबेस ऑब्जेक्ट के रूप में बनाने का निर्देश देती है।
- इन ब्लॉकों को अन्य ब्लॉकों के भीतर नेस्ट किया जा सकता है। इसमें नेस्टेड ब्लॉक भी हो सकते हैं।
- नामित ब्लॉक मूलतः दो प्रकार के होते हैं:
- प्रक्रिया
- समारोह
हम बाद के ट्यूटोरियल में “प्रक्रिया” और “फ़ंक्शन” विषयों में इन नामित ब्लॉकों के बारे में अधिक जानेंगे।
सारांश
इस ट्यूटोरियल के बाद, आपको PL/SQL ब्लॉक और उसके प्रकार, ब्लॉक के विभिन्न अनुभागों और उनके उपयोगों के बारे में पता होना चाहिए। नामित PL/SQL ब्लॉकों का विस्तृत विवरण बाद के ट्यूटोरियल में शामिल किया जाएगा।