Oracle报错/解决:Ora-2000 buffer overflow, limit of 1000 bytes

调试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 

                 

 

 


版权声明:本文为qq_39316940原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。