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

PRAGMA EXCEPTION_INIT का उपयोग करके उपयोगकर्ता परिभाषित अपवाद को कैसे घोषित करें?

जैसा कि पीएल/एसक्यूएल अपवाद हैंडलिंग की शुरूआत में चर्चा की गई है, उपयोगकर्ता-परिभाषित अपवाद घोषित करने के तीन तरीके हैं। उन तीन तरीकों में से हमने पहले दो तरीकों को पहले ही सीख लिया है जो उपयोगकर्ता-परिभाषित अपवाद का उपयोग कर घोषित कर रहे हैं

  1. बयान बढ़ाएँ और
  2. Raise_Application_Error प्रक्रिया

अब जिस पर चर्चा की जानी बाकी है, वह है Oracle डेटाबेस में PRAGMA EXCEPTION_INIT फ़ंक्शन का उपयोग करके उपयोगकर्ता परिभाषित अपवादों की घोषणा करना।

इस प्रकार इस PL/SQL ट्यूटोरियल में हम सीखेंगे कि PRAGMA EXCEPTION_INIT फ़ंक्शन का उपयोग करके Oracle डेटाबेस में PL/SQL उपयोगकर्ता-परिभाषित अपवाद कैसे घोषित करें।

PRAGMA EXCEPTION_INIT क्या है?

Pragma Exception_Init एक दो भाग का विवरण है जहां पहला भाग कीवर्ड PRAGMA से बना है और दूसरा भाग Exception_Init कॉल है।

PRAGMA कीवर्ड

प्राग्मा एक कंपाइलर निर्देश है जो इंगित करता है कि कीवर्ड PRAGMA के बाद स्टेटमेंट एक कंपाइलर डायरेक्टिव स्टेटमेंट है, इसका मतलब है कि स्टेटमेंट को कंपाइल समय पर प्रोसेस किया जाएगा न कि रनटाइम पर।

PRAGMA Exception_Init

Exception_init आपको एक अपवाद नाम को Oracle त्रुटि संख्या के साथ जोड़ने में मदद करता है। दूसरे शब्दों में हम कह सकते हैं कि Exception_Init का उपयोग करके आप अपवाद को नाम दे सकते हैं।

अपवाद को नाम क्यों दें?

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

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

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

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

प्राग्मा Exception_Init का सिंटैक्स।

PRAGMA EXCEPTION_INIT (exception_name, error_number);

उदाहरण:Pragma Exception_Init का उपयोग करके उपयोगकर्ता-परिभाषित अपवाद घोषित करें

DECLARE
  ex_age    EXCEPTION;
  age       NUMBER    := 17;
  PRAGMA EXCEPTION_INIT(ex_age, -20008);
BEGIN
  IF age<18 THEN
    RAISE_APPLICATION_ERROR(-20008, 'You should be 18 or above for the drinks!');
  END IF;
  
  DBMS_OUTPUT.PUT_LINE('Sure! What would you like to have?');
  
  EXCEPTION WHEN ex_age THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);   
END;
/

मैंने अपने YouTube चैनल पर अपने वीडियो ट्यूटोरियल में इस उदाहरण के बारे में विस्तार से बताया है, मैं आपसे अनुरोध करता हूं कि आप वहां ट्यूटोरियल देखें।

RAISE_APPLICATION_ERROR के साथ PRAGMA EXCEPTION_INIT का उपयोग क्यों करें?

हालांकि RAISE_APPLICATION_ERROR प्रक्रिया के साथ PRAGMA EXCEPTION_INIT का उपयोग करना अनिवार्य नहीं है, हालांकि यह प्रोग्रामिंग नियम की तुलना में एक व्यक्तिगत प्राथमिकता है। यदि आप त्रुटि संदेश को त्रुटि संख्या के साथ प्रिंट करना चाहते हैं जैसे कि Oracle त्रुटि दिखाने का मानक तरीका है तो RAISE_APPLICATION_ERROR प्रक्रिया के साथ PRAGMA EXCEPTION_INIT का उपयोग करना सबसे अच्छा अभ्यास है।

लेकिन अगर आप सिर्फ एरर मैसेज प्रिंट करना चाहते हैं, एरर नंबर नहीं तो आप RAISE स्टेटमेंट के साथ PRAGMAEXCEPTION_INIT का इस्तेमाल कर सकते हैं।

PRAGMA EXCEPTION_INIT का उपयोग करके Oracle डेटाबेस में उपयोगकर्ता-परिभाषित अपवाद घोषित करने के तरीके पर 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. जावा 9 में मॉड्यूल एपीआई की खोज

  2. FILESTREAM का उपयोग करके SQL डेटाबेस में फ़ाइलें संग्रहीत करना - भाग 2

  3. एडब्ल्यूएस डाटाबेस प्रवासन सेवा डीएमएस

  4. समूहीकृत चल रहे योग के लिए सर्वोत्तम दृष्टिकोण

  5. संबंधपरक मॉडल