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

很多时候我们在调试函数或存储过程的时候,经常会遇到想看变量的值,但是却显示Long value,让人很头疼.

出现像下面这种情况,

 使用dbms_output.put_line打印的时候变量的值显示也是不完整的,为了解决这个问题,特此在这里写了一个存储过程,可用来在DBMS Output 窗口输出变量的值,可支持长达4GB的字符串数据。

变量输出的存储过程代码如下:

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;

首先要在数据库中创建这个存储过程,然后在想要输出变量的地方调用这个存储过程,便可以在PL/SQL工具的DBMS输出窗口看到变量的值.

实例:

扫描二维码关注公众号,回复: 9819340 查看本文章

这时候就可以看到完整的变量值了 

发布了163 篇原创文章 · 获赞 46 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/liangmengbk/article/details/104835184