Bạn sẽ không thể in trực tiếp bảng mã bằng dbms_output.put_line nếu nó lớn hơn 32767 byte.
Nếu đúng như vậy, bạn có thể tạo một thủ tục để lặp qua clob và in ra một đoạn nhỏ hơn tại một thời điểm. Quy trình và tập lệnh kiểm tra như vậy dưới đây:
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;
Lưu ý rằng v_chunk_size phải dẫn đến ít hơn 32767 byte được phân chia tại một thời điểm. Nếu mã hóa của bạn có 2 byte cho mỗi ký tự, bạn sẽ cần sử dụng (32767/2).