有时候需要用dbms_output spool出一些脚本,所以很受长度100w个字符这个限制的困扰,但是后来发现在10GR2版本下,buffer已经可以很长很长,而行长可以达到32767个字符,为什么plsql dev里还不行呢,今天有空做了个实验
首先 在plsql dev里打开一个command window
SQL> set serveroutput on size unlimited;
SQL> declare
2 x varchar2(4000);
3 begin
4 x:=rpad('*',250,'*');
5 for i in 1..4000 loop
6 dbms_output.put_line(x);
7 end loop;
8 end;
9 /
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
ORA-06512: 在 "SYS.DBMS_OUTPUT", line 32
ORA-06512: 在 "SYS.DBMS_OUTPUT", line 97
ORA-06512: 在 "SYS.DBMS_OUTPUT", line 112
ORA-06512: 在 line 7
我了个去啊!