1. 程式人生 > >儲存過程或函式中輸出Long value值

儲存過程或函式中輸出Long value值

很多時候我們在除錯函式或儲存過程的時候,經常會遇到想看變數的值,但是卻顯示Long value,讓人很頭疼,特此在這裡寫了一個過程,可用來在DBMS Output 視窗輸出變數的值,可支援長達4GB的字串資料。

/*
 *功能: 輸出長字串,可支援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;

/

希望可以幫到有需要的同學。