要用dbms_output.put_line来输出语句,遇到以下错误:
ERROR 位于第 1 行:
ORA-20000:
ORU-10027: buffer overflow, limit of 10000 bytes
ORA-06512: 在"SYS.DBMS_OUTPUT", line 32
ORA-06512: 在"SYS.DBMS_OUTPUT", line 97
ORA-06512: 在"SYS.DBMS_OUTPUT", line 112
ORA-06512: at line 12
View program sources of error stack?
这是因为在sqlplus下,如果set serveroutput on此时就会用dbms_output将相关的信息打印到屏幕上,如果sqlplus登录环境没有设置buffer的大小,默认情况下是
10000,将打印打开也同时赋予10000的buffer,如果输出超过这个值,则会报以上错误!设置更大的buffer值,最大支持
1000000!
解决方案 1 可以使用 EXEC
DBMS_OUTPUT.ENABLE(200000)来设置该buffer值
解决方案 2 不要用dbms_output.put_line来输出语句,可以把生成的语句写到一个文件中,然后再执行生成的文件