long value oracle,存储过程或函数中输出Long value值

很多时候我们在调试函数或存储过程的时候,经常会遇到想看变量的值,但是却显示Long value,让人很头疼,特此在这里写了一个过程,可用来在DBMS Output 窗口输出变量的值,可支持长达4GB的字符串数据。

a7b2d39682f4eaf823687531b604de2d.png

/*

*功能: 输出长字符串,可支持4GB的字符串数据,便于过程/函数的调试,若出现buffer overflow ,则可调大 dbms_output.enable(50000)中参数的值

*入参: i_sourceStr

*输出: 只能在DBMS Output 窗口中输出

*/

create or replace procedure sp_putline(i_sourceStr in clob)

as

v_lenStr clob;

v_str    varchar2(4000);

v_num    number;

v_i      number;

BEGIN

dbms_output.enable(50000);

dbms_output.put_line('源字符串字符个数:'||length(i_sourceStr)||';');

if(length(i_sourceStr) > 4000) then

v_num := 1;

loop

v_lenStr := substr(i_sourceStr, v_num, 4000);

v_i := 1;

loop

v_str := substr(v_lenStr, v_i, 1000);

dbms_output.put_line(v_str);

v_i := v_i + 1000;

exit when v_i > length(v_lenStr);

end loop;

v_num := v_num + 4000;

exit when v_num > length(i_sourceStr);

end loop;

else

v_num := 1;

loop

v_str := substr(i_sourceStr, v_num, 1000);

dbms_output.put_line(v_str);

v_num := v_num + 1000;

exit when v_num > length(i_sourceStr);

end loop;

end if;

end sp_putline;

/

希望可以帮到有需要的同学。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值