Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle - ORA-06502:PL/SQL:kesalahan numerik atau nilai (DBMS_OUTPUT)

Anda tidak akan dapat mencetak gumpalan menggunakan dbms_output.put_line secara langsung jika lebih besar dari 32767 byte.

Jika ini masalahnya, Anda dapat membuat prosedur untuk beralih melalui gumpalan dan mencetak satu bagian yang lebih kecil pada satu waktu. Seperti prosedur dan skrip pengujian di bawah ini:

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;

Perhatikan bahwa v_chunk_size harus menghasilkan kurang dari 32767 byte yang dipotong sekaligus. Jika pengkodean Anda memiliki 2 byte per karakter, Anda harus menggunakan (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. Bagaimana cara memeriksa nomor yang hilang dari serangkaian angka?

  2. System.Data.OracleClient memerlukan perangkat lunak klien Oracle versi 8.1.7 atau lebih tinggi

  3. Cara bekerja dengan Fungsi tanggal di Oracle sql

  4. Oracle Database BLOB ke InputStream di Jawa?

  5. Tujuan menggunakan berbagai jenis koleksi PL/SQL di Oracle