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

2021-10-03 20:08:33 字數 1500 閱讀 5090

在除錯函式或儲存過程的時候,經常會遇到想看變數的值,但是卻顯示long value,讓人很頭疼.

出現像下面這種情況,

使用dbms_output.put_line列印的時候變數的值顯示也是不完整的,為了解決這個問題,特此在這裡寫了乙個儲存過程,可用來在dbms output 視窗輸出變數的值,可支援長達4gb的字串資料。

變數輸出的儲存過程**如下:

create or replace procedure sp_putline(i_sourcestr in clob)

asv_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輸出視窗看到變數的值.

例項:

這時候就可以看到完整的變數值了 

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

很多時候我們在除錯函式或儲存過程的時候,經常會遇到想看變數的值,但是卻顯示long value,讓人很頭疼,特此在這裡寫了乙個過程,可用來在dbms output 視窗輸出變數的值,可支援長達4gb的字串資料。功能 輸出長字串,可支援4gb的字串資料,便於過程 函式的除錯,若出現buffer ove...

觸發器 函式或儲存過程

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

儲存過程輸出引數

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