會通資訊|ArgoERP 提供全方位數位化轉型方案|立即諮詢相關資訊!

TOP

ArgoERP

Jul. 1 2022

淺談Oracle資料庫觸發器

作者:Sean

在開發Form程式過程當中,對表格資料進行修改需進行運算或驗證,例如財務系統整合上,需要將出貨單金額回寫至會計系統等,或者沖銷金額時檢查沖銷金額是否超過可沖銷本金。
又或者自動化資料庫維護,像是管理是否有未經許可的資料庫管理動作時。甚至是須以精緻的方式來應用關於可接受之資料庫管理活動的規則,例如出勤系統於請假完畢後回寫資料至請假紀錄,除了在Form表單上面土法煉鋼進行比對、回寫資料之外,我們可以考量利用Oracle Trigger進行資料整合。

目前Oracle Trigger初級應用上有兩種主要類型Row Trigger (逐列觸發) 與 Statement Trigger (敘述語句觸發),兩者都可用於Before觸發型或After觸發型,可以保證資料異動的即時性(OLTP)、一致性(consistent)、同時性(concurrency)及大幅降低網路的傳輸。



簡單範例如下:

假設我們希望在異動員工姓名時,將原本姓名儲存作為紀錄,我們可以這麼做。
–先建立LOG 表格


如此一來我們可以在異動資料後,將原本資料保存下來,可以做為異動資料查閱。
以下我們提供另一範例,若希望將交易表格帳單金額加總至指定表格已獲得整張訂單總額,可以參考如下:


如上我們便可同步訂單金額至會計系統。
對於上述功能有初步了解之後,我們再來講述其觸發優先順序,若一個表格,同時具備 Row Trigger、Statement Trigger, 則其執行先後順序 :
➀ Before觸發型的 Statement Trigger.
➁ Before觸發型的 Row Trigger.
➂ After觸發型的 Row Trigger.
➃ After觸發型的 Statement Trigger.

Oracle Trigger對於對表格進行修改的動作上執行驗證、自動化資料庫維護以精緻的方式來應用,關於可接受之資料庫管理活動的規則扮演著功不可沒的角色,但在使用上仍要審慎規劃,每個Trigger對於維護人員都是一個隐藏的程式。
尤其是更為複雜的交互式Trigger,這類型的程式往往會增加維護成本,也會讓除錯人員難以排錯,因此團隊在規劃上要盡可能留下開發手冊,以利後續維護人員可以參照著文件進行管理。


(02)2521-2589#110
winnie@argotek.com.tw

 

成功!
感謝您訂閱會通電子報
OK
成功!
您已取消訂閱會通電子報
OK