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

2021-08-26 05:47:16 字數 1388 閱讀 6547

很多時候我們在除錯函式或儲存過程的時候,經常會遇到想看變數的值,但是卻顯示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;

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

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

在除錯函式或儲存過程的時候,經常會遇到想看變數的值,但是卻顯示long value,讓人很頭疼.出現像下面這種情況,使用dbms output.put line列印的時候變數的值顯示也是不完整的,為了解決這個問題,特此在這裡寫了乙個儲存過程,可用來在dbms output 視窗輸出變數的值,可支援長...

觸發器 函式或儲存過程

觸發器是一種特殊型別的儲存過程,主要是通過事件進行觸發被自動呼叫執行的。而普通儲存過程可以通過儲存過程的名稱被呼叫。觸發器對錶進行插入 更新 刪除的時候會自動執行的特殊儲存過程。觸發器一般用在check約束更加複雜的約束上面。觸發器和普通的儲存過程的區別是 觸發器是當對某乙個表進行操作。諸如 upd...

儲存過程輸出引數

呼叫方法 sqldatabase db new sqldatabase db.dbconn.open db.dbcmd.commandtype commandtype.storedprocedure db.dbcmd.commandtext eip reportmt1 db.dbcmd.parame...