您的位置:首页 > Web前端

ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes.

2016-04-01 09:40 375 查看
  在sql*plus 等工具使用 dbms_output函数进行输出时,如若输出的内容很多,会出现ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes.错误,这是由于输出缓冲区溢出造成的,有两种方法来解决!

  1、增加输出缓冲区大小

  SET SERVEROUTPUT ON SIZE 1000000;

  2、DBMS_OUTPUT缓冲区设置限制

  在输出的最开始运行DBMS_OUTPUT.ENABLE(buffer_size => null),说明不启用输出限制

以下为oracle DBMS_OUTPUT.ENABLE的说明

procedure enable (buffer_size in integer default 20000);
pragma restrict_references(enable,WNDS,RNDS);
--  Enable calls to put, put_line, new_line, get_line and get_lines.
--    Calls to these procedures are noops if the package has
--    not been enabled.  Set default amount of information to buffer.
--    Cleanup data buffered from any dead sessions.  Multiple calls to
--    enable are allowed.
--  Input parameters:
--    buffer_size
--      Amount of information, in bytes, to buffer.  Varchar2, number and
--      date items are stored in their internal representation.  The
--      information is stored in the SGA. An error is raised if the
--      buffer size is exceeded.  If there are multiple calls to enable,
--      then the buffer_size is generally the largest of the values
--      specified, and will always be >= than the smallest value
--      specified.  Currently a more accurate determination is not
--      possible.  The maximum size is 1,000,000, the minimum is 2000.

procedure disable;
pragma restrict_references(disable,WNDS,RNDS);
--  Disable calls to put, put_line, new_line, get_line and get_lines.
--    Also purge the buffer of any remaining information.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: