PL/SQL ब्लॉक: संरचना, सिंटैक्स और अनाम उदाहरण

⚡ स्मार्ट सारांश

PL/SQL ब्लॉक एक मूलभूत इकाई है जो PL/SQL और SQL निर्देशों को समूहित करती है ताकि वे पंक्ति दर पंक्ति के बजाय एक साथ निष्पादित हों। प्रत्येक ब्लॉक में एक घोषणा, निष्पादन और अपवाद-हैंडलिंग अनुभाग होता है, और ब्लॉक अनाम या नामित हो सकते हैं।

  • 🧱 मूल विचार: Code इसे एक ब्लॉक में समूहीकृत किया गया है जो एक साथ चलता है, जिसमें प्रक्रियात्मक तर्क को SQL के साथ मिलाया जाता है।
  • 📝 घोषणा अनुभाग: वैकल्पिक; ब्लॉक में उपयोग किए जाने वाले चर, कर्सर, अपवाद और उपप्रोग्राम घोषित करता है।
  • ▶ ️ निष्पादन अनुभाग: अनिवार्य; यह BEGIN से शुरू होता है और इसमें कम से कम एक निष्पादन योग्य कथन होता है।
  • अपवाद अनुभाग: वैकल्पिक; EXCEPTION से शुरू होता है और रन-टाइम त्रुटियों को संभालता है।
  • दो प्रकार: अनाम ब्लॉक बिना नाम के होते हैं और एक बार ही चलते हैं; नाम वाले ब्लॉक डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत होते हैं।
  • 🔁 नामित ब्लॉक: प्रोसीजर और फंक्शन ऐसे नाम वाले ब्लॉक होते हैं जिन्हें बार-बार कॉल किया जा सकता है।
  • टर्मिनेटर: END ब्लॉक को बंद करता है, और एक फॉरवर्ड स्लैश इसे कंपाइलर को भेजता है।

PL/SQL ब्लॉक संरचना और सिंटैक्स

PL/SQL ब्लॉक क्या है?

PL/SQL में, कोड एकल-पंक्ति प्रारूप में निष्पादित नहीं होता है; यह हमेशा समूहबद्ध रूप से निष्पादित होता है।ping इस ट्यूटोरियल में, आप कोड को ब्लॉक नामक एक ही तत्व में परिवर्तित करना सीखेंगे। इस ट्यूटोरियल में, आप इन ब्लॉकों के बारे में जानेंगे।

ब्लॉक में PL/SQL और SQL दोनों प्रकार के निर्देश होते हैं। ये सभी निर्देश एक-एक करके निष्पादित होने के बजाय एक साथ निष्पादित होते हैं।

ब्लॉक संरचना

PL/SQL ब्लॉक की एक पूर्व-परिभाषित संरचना होती है जिसमें कोड को समूहित किया जाता है। नीचे PL/SQL ब्लॉक के विभिन्न भाग दिए गए हैं:

  1. घोषणा अनुभाग
  2. निष्पादन अनुभाग
  3. अपवाद-हैंडलिंग अनुभाग

नीचे दी गई तस्वीर में विभिन्न PL/SQL ब्लॉक सेक्शन और उनका क्रम दर्शाया गया है।

PL/SQL ब्लॉक अनुभाग और क्रम

घोषणा अनुभाग

यह PL/SQL ब्लॉक का पहला भाग है, और यह वैकल्पिक है। यह वह भाग है जिसमें ब्लॉक में आवश्यक चर, कर्सर, अपवाद, उपप्रोग्राम, प्रैगमा निर्देश और संग्रह घोषित किए जाते हैं। इस भाग की कुछ और विशेषताएं इस प्रकार हैं:

  • यह अनुभाग वैकल्पिक है और यदि किसी घोषणा की आवश्यकता नहीं है तो इसे छोड़ा जा सकता है।
  • यदि मौजूद हो तो यह PL/SQL ब्लॉक का पहला भाग होना चाहिए।
  • ट्रिगर्स और अनाम ब्लॉकों के लिए यह 'DECLARE' कीवर्ड से शुरू होता है। अन्य सबप्रोग्रामों के लिए यह कीवर्ड मौजूद नहीं होता; इसके बजाय, सबप्रोग्राम नाम के बाद का भाग घोषणा अनुभाग को दर्शाता है।
  • इसके बाद हमेशा क्रियान्वयन अनुभाग आना चाहिए।

निष्पादन अनुभाग

निष्पादन भाग मुख्य और अनिवार्य भाग है जो वास्तव में इसके अंदर लिखे गए कोड को निष्पादित करता है। PL / SQL इसमें निष्पादन योग्य कथन अपेक्षित हैं, यह ब्लॉक खाली नहीं हो सकता और इसमें कम से कम एक वैध निष्पादन योग्य पंक्ति होनी चाहिए। इस भाग की कुछ और विशेषताएं इस प्रकार हैं:

  • इसमें PL/SQL कोड और SQL कोड दोनों शामिल हो सकते हैं।
  • इसमें एक या अनेक ब्लॉक नेस्टेड ब्लॉक के रूप में समाहित हो सकते हैं।
  • यह 'BEGIN' कीवर्ड से शुरू होता है।
  • इसके बाद या तो 'END' होना चाहिए या फिर अपवाद-हैंडलिंग अनुभाग, यदि मौजूद हो।

अपवाद-हैंडलिंग अनुभाग

अपवाद अपरिहार्य त्रुटियाँ हैं जो रन-टाइम पर घटित होती हैं, और उन्हें संभालने के लिए Oracle यह ब्लॉक में अपवाद-हैंडलिंग अनुभाग प्रदान करता है। इस अनुभाग में PL/SQL कथन भी हो सकते हैं, और यह वैकल्पिक है।

  • यह वह अनुभाग है जहां निष्पादन ब्लॉक में उत्पन्न अपवाद को संभाला जाता है।
  • यह PL/SQL ब्लॉक का अंतिम भाग है।
  • इस अनुभाग से नियंत्रण कभी भी निष्पादन ब्लॉक पर वापस नहीं आ सकता।
  • यह 'EXCEPTION' कीवर्ड से शुरू होता है।
  • इसके बाद हमेशा 'END' कीवर्ड का प्रयोग होना चाहिए।

'END' कीवर्ड PL/SQL ब्लॉक के अंत को दर्शाता है।

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 ब्लॉक मुख्य रूप से दो प्रकार के होते हैं:

  1. अनाम ब्लॉक
  2. नामित ब्लॉक

नीचे दोनों की संक्षिप्त तुलना की गई है, उसके बाद प्रत्येक का वर्णन किया गया है।

पहलू अनाम ब्लॉक नामित ब्लॉक
इसका एक नाम है नहीं हाँ
डेटाबेस में संग्रहीत नहीं हाँ, एक वस्तु के रूप में
इसके साथ आरंभ होता है घोषणा करें या प्रारंभ करें बनाएँ
पुन: प्रयोज्य केवल एक ही सत्र में किसी भी समय कॉल किया जा सकता है

अनाम ब्लॉक

अनाम ब्लॉक वे PL/SQL ब्लॉक होते हैं जिनका कोई नाम नहीं होता। इन्हें एक ही सत्र में बनाना और उपयोग करना आवश्यक है क्योंकि ये सर्वर पर डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत नहीं होते हैं।

क्योंकि इन्हें डेटाबेस में संग्रहित नहीं किया जाता, इसलिए इन्हें अलग से संकलन की आवश्यकता नहीं होती। इन्हें सीधे लिखा और निष्पादित किया जाता है, और संकलन और निष्पादन एक ही प्रक्रिया में होते हैं। कुछ अन्य विशेषताएं:

  • इन ब्लॉकों का कोई संदर्भ नाम नहीं है।
  • वे 'DECLARE' या 'BEGIN' कीवर्ड से शुरू होते हैं।
  • क्योंकि उनका कोई संदर्भ नाम नहीं होता, इसलिए उन्हें बाद में उपयोग के लिए संग्रहीत नहीं किया जा सकता है और उन्हें उसी सत्र में बनाया और निष्पादित किया जाना चाहिए।
  • वे अन्य नामित ब्लॉकों को कॉल कर सकते हैं, लेकिन एक अनाम ब्लॉक को कॉल करना संभव नहीं है, क्योंकि इसका कोई संदर्भ नहीं है।
  • इनमें नाम सहित या अनाम नेस्टेड ब्लॉक हो सकते हैं, और ये किसी भी ब्लॉक के अंदर नेस्टेड भी हो सकते हैं।
  • इनमें तीनों खंड हो सकते हैं, जिनमें से निष्पादन खंड अनिवार्य है और अन्य दो वैकल्पिक हैं।

नामित ब्लॉक

नाम वाले ब्लॉक का एक विशिष्ट और अद्वितीय नाम होता है। इन्हें सर्वर पर डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत किया जाता है, इसलिए जब तक ये मौजूद रहते हैं, तब तक इन्हें संदर्भित या उपयोग किया जा सकता है। नाम वाले ब्लॉक के लिए संकलन प्रक्रिया डेटाबेस ऑब्जेक्ट के रूप में उनके निर्माण के समय अलग से होती है। कुछ अन्य विशेषताएं:

  • इन ब्लॉकों को अन्य ब्लॉकों से बुलाया जा सकता है।
  • ब्लॉक संरचना अनाम ब्लॉक के समान ही होती है, सिवाय इसके कि यह कभी भी 'DECLARE' से शुरू नहीं होती। इसके बजाय, यह 'CREATE' से शुरू होती है, जो कंपाइलर को इसे डेटाबेस ऑब्जेक्ट के रूप में बनाने का निर्देश देती है।
  • ये ब्लॉक अन्य ब्लॉकों के भीतर समाहित हो सकते हैं और इनमें भी समाहित ब्लॉक हो सकते हैं।
  • नामित ब्लॉक मूलतः दो प्रकार के होते हैं:
  1. प्रक्रिया
  2. समारोह

आप इन नामित ब्लॉकों के बारे में गाइड में और अधिक जान सकते हैं। प्रक्रियाएं और कार्य.

अक्सर पूछे जाने वाले प्रश्न

इसमें केवल निष्पादन भाग शामिल है, जो BEGIN से शुरू होकर END पर समाप्त होता है। घोषणा और अपवाद-हैंडलिंग भाग वैकल्पिक हैं और आवश्यकता न होने पर इन्हें छोड़ा जा सकता है।

अनाम ब्लॉक का कोई नाम नहीं होता, यह संग्रहीत नहीं होता और एक ही सत्र में चलता है। नाम वाला ब्लॉक, जैसे कि कोई प्रक्रिया या फ़ंक्शन, डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत होता है और इसे बार-बार कॉल किया जा सकता है।

SQL*Plus जैसे टूल में, अलग से मौजूद स्लैश कंपाइलर को बताता है कि ब्लॉक पूरा हो गया है और इसे चलाया जाना चाहिए। इसके बिना, टूल और इनपुट की प्रतीक्षा करता रहता है।

जी हां। एआई लॉजिक को CREATE PROCEDURE हेडर में रैप कर सकता है, पैरामीटर जोड़ सकता है और डिक्लेरेशन को सही जगह पर ले जा सकता है। परिणाम का परीक्षण करें, क्योंकि संग्रहीत संस्करण में स्पष्ट पैरामीटर मोड और त्रुटि प्रबंधन की आवश्यकता हो सकती है।

जी हाँ। घोषणा और अपवाद अनुभाग स्वतंत्र विकल्प हैं। एक ब्लॉक BEGIN से शुरू हो सकता है, घोषणाओं को छोड़ सकता है, और फिर भी रन-टाइम त्रुटियों को पकड़ने के लिए END से पहले एक EXCEPTION अनुभाग शामिल कर सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: