当缓冲区大小变满时。有几个选项,你可以尝试:
1)增加DBMS_OUTPUT缓冲区的大小1,000,000
2)尽量过滤写入缓冲区中的数据 - 可能有一个循环,写入DBMS_OUTPUT和你做不需要这些数据。
3)在代码中的各个检查点调用ENABLE。每次呼叫都会清除缓冲区。
DBMS_OUTPUT.ENABLE(NULL)将默认为20000的向后兼容性Oracle documentation on dbms_output
您还可以创建自定义输出display.something像下面网页摘要
create or replace procedure cust_output(input_string in varchar2)
is
out_string_in long default in_string;
string_lenth number;
loop_count number default 0;
begin
str_len := length(out_string_in);
while loop_count < str_len
loop
dbms_output.put_line(substr(out_string_in, loop_count +1, 255));
loop_count := loop_count +255;
end loop;
end;