有没有人注意到这种dbms_output.put_line
无法一次打印超过 2000 个字符的现象?
脚本是:
set serveroutput on size 100000;
declare
big_str varchar2(2009);
begin
for i in 1..2009 loop
big_str := big_str||'x';
end loop;
dbms_output.put_line(length(big_str));
dbms_output.put_line(big_str);
end;
/
我将输出复制并粘贴到编辑器(Notepad++)中,它告诉我只有 2000 个字符,而不是我认为应该粘贴的 2009。这也发生在我的一些测试脚本中——只打印了 2000 个字符。
我有一个解决方法可以像这样打印:
dbms_output.put_line(length(big_str));
dbms_output.put_line(substr(big_str,1,1999));
dbms_output.put_line(substr(big_str,2000));
这会在输出中添加新行,当您正在使用的文本被预先格式化时,很难阅读。
有没有其他人注意到这一点?它真的是一个错误或某种晦涩的功能吗?有更好的解决方法吗?还有其他关于这方面的信息吗?
Oracle 版本是:10.2.0.3.0,使用 PL/SQL Developer(来自 Allround Automation)。