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