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

Oracle डेटाबेस में एक अपवाद चर का उपयोग करके उपयोगकर्ता-परिभाषित अपवाद को कैसे घोषित करें?

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

अपवाद चर का उपयोग करके उपयोगकर्ता-परिभाषित अपवाद घोषित करना एक तीन चरण की प्रक्रिया है। ये तीन चरण हैं –

  1. अपवाद डेटाटाइप का वैरिएबल घोषित करें - यह चर पूरा बोझ अपने कंधों पर ले लेगा।
  2. अपवाद उठाएं - यह वह हिस्सा है जहां आप संकलक को उस स्थिति के बारे में बताते हैं जो अपवाद को ट्रिगर करेगी।
  3. अपवाद को संभालें – यह अंतिम खंड है जहां आप निर्दिष्ट करते हैं कि क्या होगा जब आपके द्वारा उठाई गई त्रुटि ट्रिगर होगी।

इस पीएल/एसक्यूएल ट्यूटोरियल में मैं आपको पीएल/एसक्यूएल कोड की मदद से इन तीन चरणों में से प्रत्येक को समझाने जा रहा हूं।

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

चरण 1:अपवाद डेटाटाइप का एक चर घोषित करें

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

DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;

इस घोषणा खंड में हमारे पास 4 चर हैं। इन 4 चरों में से पहले 3 सामान्य संख्या डेटाटाइप चर हैं और 4 एक जो ex_DivZero है वह विशेष अपवाद डेटाटाइप चर है। यह चर इस कार्यक्रम के लिए हमारा उपयोगकर्ता-परिभाषित अपवाद बन जाएगा।

चरण 2:अपवाद उठाएं

अपवाद चर घोषित करने के बाद अगला कदम अपवाद उठाना है। PL/SQL में एक्सेप्शन बढ़ाने के लिए हम राइज स्टेटमेंट का उपयोग करते हैं।

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

BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;

यहां राइज कंडीशन के साथ IF-THEN कंडीशन है। इसकी मदद से हम प्रोग्राम के कंट्रोल फ्लो के दौरान अनचाहे स्विच से बच सकते हैं। इफ कंडीशन का उपयोग करके हम यह सुनिश्चित कर रहे हैं कि यह त्रुटि तभी लागू होगी जब भाजक 0 के बराबर होगा।

var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);

एरर को बढ़ाने के लिए लॉजिक लिखने के बाद आप कोड के अपने अन्य एक्जीक्यूटेबल स्टेटमेंट वैसे ही लिख सकते हैं जैसे हमने यहां किया था। राइज़ स्टेटमेंट के बाद हम डिवीजन ऑपरेशन के अंकगणित का प्रदर्शन कर रहे हैं और परिणाम को वेरिएबल var_result में स्टोर कर रहे हैं, साथ ही इसे DBMS OUTPUT स्टेटमेंट का उपयोग करके आउटपुट के रूप में वापस प्रदर्शित कर रहे हैं।

चरण 3:अपवाद को संभालें

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

EXCEPTION WHEN ex_DivZero THEN
    DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

यहां हमारे पास चर ex_DivZero के लिए अपवाद हैंडलर है। एक्सेप्शन हैंडलिंग सेक्शन में हमारे पास एक DBMS OUTPUT स्टेटमेंट होता है जो तब प्रदर्शित होता है जब हमारा यूजर एरर को परिभाषित करता है जो कि ex_DivZero होता है।

आइए अब कोड के इन सभी हिस्सों को एक साथ समूहित करें।

Oracle डेटाबेस में PL/SQL उपयोगकर्ता-परिभाषित अपवाद का उपयोग करके शून्य त्रुटि से विभाजित करें

SET SERVEROUTPUT ON;
DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;
BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;
  var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);
  EXCEPTION WHEN ex_DivZero THEN
      DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

इस प्रोग्राम को चलाने से पहले यह सुनिश्चित कर लें कि आपने SERVEROUTPUT को चालू कर दिया है अन्यथा आप परिणाम नहीं देख पाएंगे।

जैसा कि चरण -1 में हम भाजक का मान शून्य पर सेट करते हैं जो बदले में उपयोगकर्ता को त्रुटि को परिभाषित करेगा ex_DivZero इस वजह से उपरोक्त कोड को संकलित करने पर आपको स्ट्रिंग दिखाई देगी "त्रुटि त्रुटि - आपका भाजक शून्य है" वही जो हमने निर्दिष्ट किया था हमारे अपवाद हैंडलर में (चरण 3)।

यह 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. KGXGN मतदान त्रुटि (15)

  2. TRUNC(दिनांक) Oracle में समारोह

  3. Oracle में DATEADD () के लिए समतुल्य कार्य

  4. ओरेकल गतिशील स्पूल स्थान के साथ स्पूल का उपयोग कैसे करें

  5. Oracle में केवल अल्फ़ान्यूमेरिक वर्ण वाली पंक्तियों को वापस करने के 2 तरीके