create or replace procedure proc_show_value as v_a varchar2(32767); begin for i in 1..1000 loop v_a:=chr(ascii('a')+mod(i,27))||v_a; end loop; dbms_output.put_line(v_a); end; 调整循环上限测试了下. 当循环次数n<=999时,test窗口的text editor可以正常显示v_a的值. 当次数1000=<n<=2000时,可以在command 窗口正常打印v_a的值. 当次数 n>2000时,command窗口将会报错.ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes; 对于过长的varchar2变量,还是自己根据长度写个循环,每2000个一次,打印到command窗口吧.想不出什么好办法.
在下面的[窗口,把你想看的变量名写到变量栏里面。。后面的一列就是你想要看的值。
as
v_a varchar2(32767);
begin
for i in 1..1000 loop
v_a:=chr(ascii('a')+mod(i,27))||v_a;
end loop;
dbms_output.put_line(v_a);
end;
调整循环上限测试了下.
当循环次数n<=999时,test窗口的text editor可以正常显示v_a的值.
当次数1000=<n<=2000时,可以在command 窗口正常打印v_a的值.
当次数 n>2000时,command窗口将会报错.ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes;
对于过长的varchar2变量,还是自己根据长度写个循环,每2000个一次,打印到command窗口吧.想不出什么好办法.