在oracle中将长sql输出,类似sql server的print

********************************************************************************
1、用下面函数就行:例子是给了20000字符
   dbms_output.enable(20000);
********************************************************************************
2、可以用utl_file直接写入到文件里
********************************************************************************
3、declare
   lineCount INTEGER;
   i INTEGER;
   initStr Varchar2(4000);
BEGIN
   initStr:=initStr();  --获得你要输出的字符串
   lineCount := ceil(length(initStr)/255);
   dbms_output.put_line('Length:'||to_char(length(initStr)));
 FOR i IN 1..lineCount LOOP
     dbms_output.put_line('-------i--------:'||to_char(i));
     dbms_output.put_line(substr(initStr,1 + 255 * (i - 1),255));
 END LOOP;
END;

********************************************************************************
4、用下面的这个存储过程代替你的dbms_output.put_line()
create or replace procedure put_line_unlimit( p_string in varchar2 )
is
   l_string long default p_string;
begin
   loop
     exit when l_string is null;
     dbms_output.put_line( substr( l_string, 1, 250 ) );
     l_string := substr( l_string, 251 );
   end loop;
end;
例如:
SQL> declare
    v_sql  varchar2(300):='';
    v_i  number:=1;
    begin
         dbms_output.enable(20000);
         for v_i in 1..256 loop
             v_sql:=v_sql||'*';
         end loop;
         put_line_unlimit(v_sql);
   end;
   /

********************************************************************************


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值