调试Oracle脚本/存储过程时出现报错以下信息:
ORA-2000:ORU-10027: buffer overflow, limit of 1000 bytes
主要原因是:DBMS_OUTPUT.PUT_LINE调试信息输出太多,超出BUFFER设定。
该报错的解决方案有:
1. 修改buffer size
在代码块/存储过程的 begin 后面,追加一行代码:
--设置为输出buffer不受限制
DBMS_OUTPUT.ENABLE (buffer_size=>null);
--设置为指定大小
DBMS_OUTPUT.ENABLE (10000000);其中, buffer_size=>null 表示输出的buffer不受限制。
2. 命令设置环境变量serveroutput
* set serveroutput on命令不可以放在存储过程中执行
打开命令窗口,执行:
-- 设置允许显示输出类似dbms_output
set serveroutput on;或:
-- 设置允许显示输出类似dbms_output且大小为10000000
set serveroutput on size 10000000;3.永久设置环境变量serveroutput
要是觉得第2中方式命令执行比较繁琐,可以将 set serveroutput on 写入文件内:
a. sqlplus的情况
在安装路径中找到 glogin.sql,打开该文件,并在文件中添加:set serveroutput on . (这个文件为sqlplus每次启动时需要加载的文件,会自动生效)


b. PLsql的情况
1. 在安装路径中找到 Login.sql ,打开该文件,并在文件中添加:set serveroutput on .


2. 工具栏中设置
tools --> Preferences --> Output (配置 --> 首选项 --> 输出 --> 缓冲区大小):

BY Leona