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

ओआरए-कोड त्रुटि विवरण के लिए क्वेरी Oracle

यह SQL से सुलभ नहीं है, लेकिन PL/SQL के भीतर, आप SQLERRM . का उपयोग कर सकते हैं समारोह।

उदाहरण के लिए

SQL> ed
Wrote file afiedt.buf

  1  begin
  2    dbms_output.put_line( sqlerrm(0) );
  3    dbms_output.put_line( sqlerrm(-1041) );
  4* end;
SQL> /
ORA-0000: normal, successful completion
ORA-01041: internal error. hostdef extension doesn't exist

PL/SQL procedure successfully completed.

बेशक, आप एक ora_code_desc बना सकते हैं फ़ंक्शन जिसने एक स्ट्रिंग में लिया, पहले तीन वर्णों को हटा दिया, परिणामी संख्या को SQLERRM . पर पास कर दिया , और परिणाम लौटा दिया

SQL> ed
Wrote file afiedt.buf

  1  create or replace function ora_code_desc( p_code in varchar2 )
  2    return varchar2
  3  is
  4    l_str varchar2(1000);
  5  begin
  6    l_str := sqlerrm( substr(p_code, 4 ) );
  7    return l_str;
  8* end;
SQL> /

Function created.

SQL> select ora_code_desc( 'ORA-00000' ) from dual;

ORA_CODE_DESC('ORA-00000')
--------------------------------------------------------------------------------
ORA-0000: normal, successful completion

Oracle यूनिक्स प्लेटफॉर्म पर एक उपयोगिता भी भेजता है oerr जो अधिक विवरण प्रदान करता है-- विशेष रूप से वह कारण और कार्य जिसकी आप तलाश कर रहे हैं। यदि आप वास्तव में वह डेटा भी चाहते हैं, तो आप एक जावा संग्रहीत कार्यविधि लिख सकते हैं जो एक ऑपरेटिंग सिस्टम शेल को कॉल किया जाता है, एक oerr निष्पादित किया जाता है आदेश, और परिणाम वापस कर दिया। इससे आपको अधिक डेटा मिलेगा लेकिन जाहिर है, यह बहुत अधिक जटिल होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक डेटाबेस के अनुरूप ऑनलाइन SQL सिंटैक्स चेकर

  2. विशिष्ट स्तंभों के लिए DISTINCT का उपयोग करना

  3. ओरेकल पीएल/एसक्यूएल - कोलन से कैसे बचें (:), बाइंड वैरिएबल के लिए गलत व्याख्या की जा रही है

  4. मेरा अमान्य वर्ण कहां है (ORA-00911)

  5. पंक्ति 191 पर त्रुटि:ORA-01489:स्ट्रिंग संयोजन का परिणाम बहुत लंबा है