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

ORA-01722:अमान्य संख्या, विशिष्ट पंक्ति खोजें

अधिकांश SQL क्लाइंट उस लाइन और कॉलम की रिपोर्ट करेंगे जहां त्रुटि हुई थी। यदि आपके पास एक अच्छा IDE नहीं है, तो DBMS_SQL का उपयोग करें ।

एसक्यूएल क्लाइंट

अधिकांश SQL IDE त्रुटि की रेखा और स्तंभ संख्या को हाइलाइट करेंगे। यहां तक ​​कि SQL*Plus ठीक वही दिखाता है जहां अमान्य संख्या त्रुटि होती है:

SQL> select *
  2  from dual
  3  where 1 = 1
  4  and 1 = 'a'
  5  and 2 = 2;
and 1 = 'a'
        *
ERROR at line 4:
ORA-01722: invalid number

(दुर्भाग्य से, Oracle SQL डेवलपर यह कार्यक्षमता प्रदान नहीं करता है।)

DBMS_SQL

यदि आपकी पसंद के SQL टूल सीमित हैं, तो भी आप DBMS_SQL.LAST_ERROR_POSITION का उपयोग करके प्रासंगिक लाइन नंबर ढूंढ सकते हैं। ।

declare
    v_sql clob := q'[
        select *
        from dual
        where 1 = 1
            and 1 = 'a'
            and 2 = 2
    ]';
    v_cursor integer;
    v_ignore number;
begin
    v_cursor := dbms_sql.open_cursor;
    dbms_sql.parse(v_cursor, v_sql, dbms_sql.native);
    v_ignore := dbms_sql.execute(v_cursor);
exception when others then
    dbms_output.put_line(sqlerrm);
    dbms_output.put_line('Error starts here: '||
        substr(v_sql, dbms_sql.last_error_position));
end;
/

Results:
ORA-01722: invalid number
Error starts here:  'a'
            and 2 = 2

(यह उत्तर मानता है कि आप सीधे SQL कथन चला सकते हैं। यदि त्रुटि PL/SQL प्रोग्राम का हिस्सा है, तो तथ्य के बाद SQL कथन के अंदर लाइन नंबर खोजने का कोई आसान तरीका नहीं है, जब तक कि आप इसे चलाने में सक्षम न हों फिर से DBMS_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. ORA-00942:तालिका या दृश्य मौजूद नहीं है (जब एक अलग sql काम करता है, लेकिन एक ऑरैकल फ़ंक्शन के अंदर काम नहीं करता है)

  2. jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:oracle:thin:@localhost:1521:XE वेब एप्लिकेशन चलाते समय

  3. आर मार्कडाउन एसक्यूएल खंड में एसक्यूएल पैरामीटर का उपयोग कैसे करें

  4. Oracle में अपरकेस में कनवर्ट करने के 2 तरीके

  5. Oracle sysdba पासवर्ड को कैसे रिकवर या बदलें?