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

Oracle - ORA-06502:PL/SQL:संख्यात्मक या मान त्रुटि (DBMS_OUTPUT)

32767 बाइट्स से अधिक होने पर आप सीधे dbms_output.put_line का उपयोग करके क्लॉब को प्रिंट नहीं कर पाएंगे।

यदि ऐसा है तो आप क्लॉब के माध्यम से पुनरावृति करने के लिए एक प्रक्रिया बना सकते हैं और एक समय में एक छोटा सा हिस्सा प्रिंट कर सकते हैं। ऐसी प्रक्रिया और परीक्षण स्क्रिप्ट नीचे है:

declare 

  c clob;

  procedure print_clob( p_clob in clob ) is
      v_offset number default 1;
      v_chunk_size number := 10000;
  begin
      loop
          exit when v_offset > dbms_lob.getlength(p_clob);
          dbms_output.put_line( dbms_lob.substr( p_clob, v_chunk_size, v_offset ) );
          v_offset := v_offset +  v_chunk_size;
      end loop;
  end print_clob;


begin
  for i in 1..10000 loop
     c := c || 'test';
  end loop;
  --This will result in ora-06502
  --dbms_output.put_line(c);

  print_clob(c);

end;

ध्यान दें कि v_chunk_size का परिणाम एक बार में 32767 बाइट्स से कम होना चाहिए। यदि आप एन्कोडिंग में 2 बाइट्स प्रति चार हैं तो आपको (32767/2) का उपयोग करने की आवश्यकता होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं जावा/जेडीबीसी का उपयोग करके ओरेकल डेटाबेस में 4000 वर्णों से अधिक लंबी स्ट्रिंग कैसे संग्रहीत करूं?

  2. sqlplus में त्रुटियां कैसे दिखाएं

  3. Oracle Apps R12.2 . में TLS को सक्षम करना

  4. तालिका उत्परिवर्तन त्रुटियों से कैसे बचें

  5. Oracle में LOCALTIMESTAMP () फ़ंक्शन