下午的时候在 PL/SQl Developer 10.0.5.1710 上调试壹個存储过程,在调试的时候使用了比较多的 DBMS_OUTPUT.PUT_LINE 作为打印日志的方式,结果没过多久 PLSQL 客户端就开始提示如下错误:ORA-20000: ORU-10027: buffer overflow, limit of 10000 bytes,分析下来是因为函数DBMS_OUTPUT.PUT_LINE()是在循环体中打印结果的,因此,循环执行多少次,这個函数就会执行多少次, 导致缓冲区很快爆满。具体的错误信息如下图所示。

下午的时候在 PL/SQl Developer 10.0.5.1710 上调试壹個存储过程,在调试的时候使用了比较多的 DBMS_OUTPUT.PUT_LINE 作为打印日志的方式,结果没过多久 PLSQL 客户端就开始提示如下错误:ORA-20000: ORU-10027: buffer overflow, limit of 10000 bytes,分析下来是因为函数DBMS_OUTPUT.PUT_LINE()是在循环体中打印结果的,因此,循环执行多少次,这個函数就会执行多少次, 导致缓冲区很快爆满。具体的错误信息如下图所示。

于是果断 Google 了关键字"ORA-20000: ORU-10027: buffer overflow, limit of 10000 bytes",查询结果的前两条就是来自 Oracle Forum 论坛的解决方法。两個链接分别是https://community.oracle.com/message/977489https://community.oracle.com/thread/308557 ,解决的方法也很简单,就是在我们的存储过程的方法体开始的时候增加如下内容:DBMS_OUTPUT.ENABLE(1000000); 使输出的缓冲区的容量达到壹千万個字节,这样就不怕它的容量爆表了。具体的参考代码如下所示:

CREATE OR REPLACE PROCEDURE SAMPLE_PROC
IS
--各种临时变量和游标的定义
CURSOR CURSOR_SAMPLE IS SELECT ... FROM TABLE_NAME WHERE ...;
BEGIN
--方法体从这里开始
DBMS_OUTPUT.ENABLE(1000000);
FOR I IN CURSOR_SAMPLE LOOP
--输出语句样例
DBMS_OUTPUT.PUT_LINE(...);
END LOOP;
--其它内容
END;
/

如果是在命令行下编写存储过程,可以直接使用语句 SET SERVEROUTPUT ON size '1000000'; 来设置缓冲区的最大容量。
当然,如果你需要输出的日志容量真的很大,建议还是不要使用 DBMS_OUTPUT,而是使用 UTL_FILE 输出到指定的日志文件,详细的参考样例见于
http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/u_file.htm#ARPLS70903 ,后者基于 UNIX 系统,不过也可以很容易的照搬到 Windows 平台。

调试存储过程时提示ORA-20000: ORU-10027: buffer overflow的更多相关文章

  1. LINUX下IDEA等工具调试项目时提示:Unable to open debugger port

    在Ubuntu下调试项目时使用TOMCAT容器,在设置好相应的TOMCAT LOCAL 路径及相关信息后,点击调试项目出现: Unable to open debugger port : java.n ...

  2. firebug调试js时提示调试器未激活处理办法

    firebug是web开发中最常用的分析调试软件,不过我今天使用在调试百度在线编辑器UEditor时一直提示调试器未激活. 从使用经验来看不应该啊,我都下了断点了为什么会提示调试器未激活呢!多次载入网 ...

  3. 使用HBuilder编辑器进行真机调试运行时提示Waiting for debugger!

    在使用HBuilder编辑器创建mui项目进行真机调试的时候,手机总是提示Waiting for debugger! 现在终于找到了解决办法: 手机 设置 -> 开发人员选项 -> USB ...

  4. otl使用存储过程或是LEFT JOIN时提示输出类型未知的问题

    otl_stream的构造函数或成员函数open的第四个参数const int implicit_select 默认是otl_explicit_select.当使用存储过程时,必须指定为otl_imp ...

  5. SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

    我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...

  6. 【转】Win7 64bit Oracle 11g 使用PL/SQL Developer 连接时提示“SQL*Net not properly installed”

    转载:http://www.cnblogs.com/xihuaodc/p/3189257.html  因为之前的Oracle不能用了,所以重新安装了64位的Oracle,安装一路正常 完了之后安装了P ...

  7. 在Ubuntu 12.04 - 64bit中安装CodeSourcery时提示错误

    安装时提示错误,Your 64-bit Linux host is missing the 32-bit libraries requied to install and use Sourcery C ...

  8. 启动Oracle时提示:ORA-01078:failure in processing system parameters

    一.使用环境操作系统:CentOS release 6.2 (Final) 数据库:Oracle 12g数据库主目录:/ora12/product/product/12.1.0/db_1 二.问题描述 ...

  9. 使用IDEA进行Lua代码调试、自动提示、代码跳转、智能重命名

    试了几个Lua IDE后,Lua Studio.Lua Glider.VS+babelua插件.Sublime都不是特别满意.直到发现了国人自创的另一个神奇工具:基于IDEA的EmmyLua插件.该插 ...

随机推荐

  1. CodeForces Round #179 (295A) - Greg and Array 一个线段树做两次用

    线段树的区间更新与区间求和...一颗这样的线段树用两次... 先扫描1~k...用线段树统计出每个操作执行的次数... 那么每个操作就变成了 op. l  , op.r , op.c= times* ...

  2. css中的media

    说起CSS3的新特性,就不得不提到 Media Queries .最近 Max Design 更新的一个泛读列表里,赫然就有关于 Media Queries 的文章.同时位列其中的也有前天我刚刚翻译的 ...

  3. 性能优化工具---sar

    简介: System Activity Reporter系统活动情况报告 下载地址: http://pagesperso-orange.fr/sebastien.godard/download.htm ...

  4. Java程序在向mysql中插入数据的时候出现乱码

    今天在往数据库中插入数据的时候中文字符在数据库中就出现了乱码?网上有各种说法,但是适合我的,最终解决我的问题的只有下面一种! 在创建数据库的时候,注意设置编码方式. CREATE DATABASE ` ...

  5. matlab GUI之常用对话框(二)-- 进度条的使用方法

    常用对话框(二) 进度条   waitbar 调用格式: h = waitbar(x,'message')  waitbar(x,'message','CreateCancelBtn','button ...

  6. Ubuntu 14.04 静态IP设置

    1. 编辑/etc/network/interfaces vim /etc/network/interfaces 2.将以下五项添加到/etc/network/interfaces中 Static d ...

  7. 指定hive输出格式

    0.11版本以前: sed -e 's/\x01/|/g' file 0.11版本以后: insert overwrite local directory '/opt/aimcpro/libc/tes ...

  8. C# 实现磁性窗体

    可以实现窗体的 吸附 移动 分离     using System; using System.Drawing; using System.Collections.Generic; using Sys ...

  9. BZOJ 1951: [Sdoi2010]古代猪文( 数论 )

    显然答案是G^∑C(d,N)(d|N).O(N^0.5)枚举N的约数.取模的数999911659是质数, 考虑欧拉定理a^phi(p)=1(mod p)(a与p互质), 那么a^t mod p = a ...

  10. 怎样使用Markdown

    转自:http://wowubuntu.com/markdown/basic.html 段落.标题.区块代码 一个段落是由一个以上的连接的行句组成,而一个以上的空行则会划分出不同的段落(空行的定义是显 ...