在执行如下sql语句时:
set
serveroutput
on
;
declare
-- 循环所需表
cursor cur_t_zhcxb is
select * from bmrs.t_zhcxb;
begin
for rec_t_zhcxb in cur_t_zhcxb loop
begin
dbms_output.put_line( ' insert into t_zhcxb value( ''' || rec_t_zhcxb.f_ywbm || ' '' ) ' );
end ;
end loop;
end ;
declare
-- 循环所需表
cursor cur_t_zhcxb is
select * from bmrs.t_zhcxb;
begin
for rec_t_zhcxb in cur_t_zhcxb loop
begin
dbms_output.put_line( ' insert into t_zhcxb value( ''' || rec_t_zhcxb.f_ywbm || ' '' ) ' );
end ;
end loop;
end ;
出现错误:
ERROR 位于第
1
行:
ORA - 20000 : ORU - 10027 : buffer overflow, limit of 2000 bytes
ORA - 06512 : 在"SYS.DBMS_OUTPUT", line 34
ORA - 06512 : 在"SYS.DBMS_OUTPUT", line 118
ORA - 06512 : 在"SYS.DBMS_OUTPUT", line 81
ORA - 06512 : 在line 9
ORA - 20000 : ORU - 10027 : buffer overflow, limit of 2000 bytes
ORA - 06512 : 在"SYS.DBMS_OUTPUT", line 34
ORA - 06512 : 在"SYS.DBMS_OUTPUT", line 118
ORA - 06512 : 在"SYS.DBMS_OUTPUT", line 81
ORA - 06512 : 在line 9
在ITPUB论坛上一查发现有人问过类似问题:
http://www.itpub.net/514002.html
解决方法如下:
1、用dbms_output.enable( )设定长度.
DBMS_OUTPUT.ENABLE (buffer_size IN INTEGER DEFAULT 20000);
(注:该方法按如上设置没成功,直接DBMS_OUTPUT.ENABLE (20000);则成功执行)
2、也可以SET SERVEROUTPUT ON SIZE 5000
其中1方法仅对当次设定有效,删除后仍会提示错误,而2方法是修改配置信息,如果不关闭Sql*plus的该设定仍然存在。