日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle触发器的测试,ORACLE触发器的测试

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle触发器的测试,ORACLE触发器的测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.打開并登錄pl/sql,File->New->Test Window;

2.在出現的窗口中的begin后輸入腳本,該語句應該能夠調用存儲過程、函數,或語句能觸發觸發器;

比如我為某個表users的insert操作建立了觸發器,那么test中的語句就是

update TABLE1

或者

INSERT TABLE2

注意sql語句結尾不需要加分號。

3.這時候如果直接在測試窗口執行F9,不會進入調試狀態,也不會執行上邊的插入語句。需要在trigger右擊,選中“添加調試信息”。

4. 這時F9進入調試狀態,顯示trigger創建語句,窗口上邊有調試方式的按鈕,分別是:運行、逐行調試、跳過方法調試、運行至下個斷點、運行至下個異常點。

5.調試過程中可以把鼠標放在變量上,就可以看到變量的當前值。

如果要調試存儲過程、方法,可直接右鍵就有“Test”。

查看變量還可以隨時在varible List中輸入我們想查看的變量,回車,即可看到。

注意 這個 要求 ORACLE 為8.17I 版本以上的

還有一個調試方法是 將TIRIGER中 BEGIN 開始的部分做一個存儲過程

然后測試 這個存儲過程

create or replace procedure test_bal_ic_total(store_no number,

ref_no number,

total_net_amnt number,

net_amnt number,

appr_date date,

automatic number) is

begin

DECLARE

vstore_no number(2);

vref_no number(6);

vtotal_net_amnt number(15, 2);

vnet_amnt number(15, 2);

vappr_date date;

vautomatic number(1);

vcheckflag number(1);

vord_no number(6);

vord_year varchar2(4);

updatenorow exception;

BEGIN

if sqlcode = -1403 then

raise updatenorow;

end if;

vstore_no := store_no;

vref_no := ref_no;

vtotal_net_amnt := total_net_amnt;

vnet_amnt := net_amnt;

vappr_date := appr_date;

vautomatic := automatic;

if (vautomatic = 0) then

vcheckflag := 3;

else

vcheckflag := 2;

end if;

select ord_no, to_char(ord_date, 'yyyy')

into vord_no, vord_year

from orders

where (store_no, ord_no) in

(select store_no, ord_no

from ord_ref

where store_no = vstore_no

and ref_no = vref_no);

update bal_ic_total

set perc = decode(round((vtotal_net_amnt - vnet_amnt) * 100 /

vnet_amnt,

2),

14.94,

14.943,

round((vtotal_net_amnt - vnet_amnt) * 100 /

vnet_amnt,

0)),

amount_vat = vtotal_net_amnt - vnet_amnt,

ic_total_net_amnt = vtotal_net_amnt,

diff_total_net_amnt = ord_total_net_amnt - vtotal_net_amnt,

checkflag = vcheckflag,

appr_date = vappr_date

where store_no = vstore_no

and ord_no = vord_no

and ord_total_net_amnt >= 0

and checkflag != 4

and ord_year = vord_year

and flag = 0;

exception

when updatenorow then

null;

when others then

dbms_output.put_line(to_char(sqlcode));

END;

end test_bal_ic_total;

測試 這個過程,那么 把變量 帶入就可以 測試

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的oracle触发器的测试,ORACLE触发器的测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。