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

मेरी प्रक्रिया के लिए कॉल में गलत संख्या या तर्क के प्रकार

यदि आपको दूसरे और तीसरे तर्कों की आवश्यकता नहीं है, तो आप उन्हें तर्कों के बजाय प्रक्रिया में चर के रूप में घोषित कर सकते हैं:

CREATE OR REPLACE PROCEDURE DDPAY_SP(DONOR_ID IN  DD_DONOR.IDDONOR%TYPE,
                                     RET      OUT BOOLEAN)
IS
  nPayment_count  NUMBER;
BEGIN 
  SELECT COUNT(*)
    INTO nPayment_count  
    FROM DD_PLEDGE p
    WHERE p.IDDONOR = DONOR_ID AND
          p.IDSTATUS = 10 AND
          p.PAYMONTHS > 0;

  IF nPayment_count > 0 THEN
    RET := TRUE;
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('DD_PAY - exception: ' || SQLCODE || ' : ' || SQLERRM);
    RAISE;
END DDPAY_SP;

मैंने DD_PAY के अंत में एक EXCEPTION हैंडलर का उदाहरण शामिल किया है। कम से कम इस न्यूनतम हैंडलर को शामिल करना हमेशा एक अच्छा विचार है ताकि अपवाद होने की स्थिति में आपको कुछ संकेत मिल जाए कि समस्या कहां है।

चूंकि यह प्रक्रिया एक बूलियन मान लौटाती है, और बूलियन (मेरी सर्वोत्तम जानकारी के अनुसार) SQL*प्लस से उपयोग नहीं किए जा सकते हैं, आपको इसे PL/SQL ब्लॉक से निम्नानुसार लागू करना होगा:

DECLARE
  bRetval  BOOLEAN;
BEGIN
  DD_PAY(308, bRetval);
  DBMS_OUTPUT.PUT_LINE('Returned value is ' ||
                       CASE bRetval
                         WHEN TRUE THEN 'TRUE'
                         ELSE 'FALSE'
                       END);
END;

इसे आज़माएं।

संपादित करें:बाद की टिप्पणियों से अधिक जानकारी के आधार पर प्रक्रिया को फिर से लिखें।

साझा करें और आनंद लें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्रिसमस जल्दी आता है (ओरेकल 12.2)

  2. नए बनाए गए श्रोता के साथ प्लग करने योग्य डेटाबेस (पीडीबी) को कैसे पंजीकृत करें

  3. Oracle में रोमन अंकों के रूप में संख्याओं को कैसे प्रारूपित करें

  4. प्राथमिक कुंजी के साथ Oracle भौतिकीकृत दृश्य

  5. ओरेकल में अशक्त बराबर अशक्त बनाने के लिए कैसे?