Du vil ikke være i stand til at udskrive en clob ved hjælp af dbms_output.put_line direkte, hvis den er større end 32767 bytes.
Hvis dette er tilfældet, kan du oprette en procedure til at iterere gennem klumpen og udskrive en mindre del af gangen. Sådan en procedure og testscript er nedenfor:
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;
Bemærk, at v_chunk_size skal resultere i, at mindre end 32767 bytes bliver chunked ad gangen. Hvis din kodning har 2 bytes pr. tegn, skal du bruge (32767/2).