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

आपके आवेदन द्वारा उठाए गए प्रत्येक 'त्रुटि संदेश' को ट्रैक करने, पहचानने और रिपोर्ट करने का एक प्रभावी तरीका क्या है?

अपने स्वयं के एप्लिकेशन द्वारा उठाई गई त्रुटियों के लिए, इस तरह की त्रुटि संदेशों की एक तालिका के लिए एक सामान्य समाधान:

create table errors
    ( error_no integer primary key
    , error_text varchar2(200)
    , error_cause varchar2(4000)
    , error_action varchar2(4000)
    );

एक सामान्य प्रविष्टि हो सकती है:

insert into errors (error_no, error_text, error_cause, error_action)
values (479, 'End date cannot be earlier than start date',
        'A start date and an end date were entered where the end date was before the start date, which is not allowed.',
        'Correct the start and end dates and retry.'
       );

फिर आपके कोड में अपवादों को कुछ इस तरह से हैंडल करें:

if p_start_date > p_end_date then
    error_pkg.raise_error (479);
end if;

पैकेज कुछ ऐसा करेगा:

procedure raise_error (p_error_no integer)
is
    l_text errors.error_text%type;
begin
    select error_text into l_text
    from   errors
    where  error_no = p_error_no;
    raise_application_error(-20001, l_text);
end;

अंतिम उपयोगकर्ता को कुछ इस तरह दिखाई देगा:

ERROR 479: End date cannot be earlier than start date

इसके बाद कारण और कार्रवाई विवरण प्राप्त करने के लिए इसे देखा जा सकता है।

एक अधिक उन्नत संस्करण इस तरह के त्रुटि पाठ में प्लेसहोल्डर का उपयोग करके संदेशों में डेटा मानों को प्रदर्शित करने की अनुमति देगा:

insert into errors (error_no, error_text, error_cause, error_action)
values (456, 'Invalid action code: [1]',
        'An invalid action was specified', 'Correct the action code and retry.'
       );

error_pkg.raise_error (456, p_act_code);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल डेडलॉक माता-पिता/बच्चे और बच्चे ने एफके को अनुक्रमित किया है

  2. पीएल/एसक्यूएल में अलग-अलग कॉलम के रूप में एक टेबल से दूसरी टेबल में एक कॉलम डेटा कैसे प्राप्त करें?

  3. डेटाबेस में स्वचालित रूप से फ़ील्ड अपडेट करें

  4. पीएल/एसक्यूएल में दो आयामी सरणी बनाना या अनुकरण करना

  5. Oracle में उच्चतम मूल्य के साथ रिकॉर्ड कैसे प्रदर्शित करें?