dbms_output.put_line 的替代方案

Posted

技术标签:

【中文标题】dbms_output.put_line 的替代方案【英文标题】:Alternative to dbms_output.putline 【发布时间】:2012-12-02 08:13:14 【问题描述】:

我正在一个过程中创建一个动态查询,现在想通过dbms_output.putline 查看它,但我的查询包含超过 255 个字符。

如何查看查询?

dbms_output.putline 的替代品是什么?

【问题讨论】:

dbms_output.putline 没有 255 个字符的限制。你为什么这么认为? dbms_output.put_line 每行限制为 255 个字符。 【参考方案1】:

现在有点混乱。

在 Oracle 9i 中,dbms_output.put_line 是 limited to 255 characters。此限制为removed in 10g,同样在Oracle 11g 中不存在。

您已标记您的问题oracle10g,这意味着您被限制为 32,767 字节,即标准 PL/SQL 最大值。

【讨论】:

+1,我不知道 9i 的限制(那是很久以前的事了) 我不知道限制在 10g 中已经解除,直到我看到你的评论并去寻找:-)。我真的没有机会打印很长的东西。感谢您修复我的胖手指 1 @a_horse_with_no_name 我在 oracle 10g ORA-20000 中收到此错误:ORU-10028: line length overflow, limit of 255 chars per line...【参考方案2】:

尝试弄乱类似的东西

create or replace procedure custom_output(in_string in varchar2 )
is 

   out_string_in long default in_string; 
   str_len number; 
   loop_count number default 0; 

begin 

   str_len := length(out_string_in);

   while loop_count < str_len
   loop 
      dbms_output.put_line( substr( out_string_in, loop_count +1, 255 ) ); 
      loop_count := loop_count +255; 
   end loop; 

end;

/

【讨论】:

以上是关于dbms_output.put_line 的替代方案的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 中的dbms_output.put_line

Oracle 中的dbms_output.put_line

存储过程的dbms_output.put_line问题

dbms_output.put_line 不能与游标一起正常工作

错误(357,1):PLS-00201:必须声明标识符“DBMS_OUTPUT.PUT_LINE”

在 dbms_output.put_line 和 dbms_output.put pl/sql 之间混淆