我怎樣寫一個Oracle觸發器,當用戶刪除某個記錄比,刪除犯規實際發生的,而是在執行這些行的更新和設置的狀態記錄到'D'?甲骨文TRIGGER-而不是刪除,更新的行
我想:
create or replace
trigger DELFOUR.T4M_ITEM_ONDELETE
before delete on M_ITEM_H
FOR EACH ROW
BEGIN
UPDATE
M_ITEM_H
SET
ITEM_STAT = 'D'
WHERE
CUST_CODE = 'TEST'
AND ITEM_CODE = 'GDAY'
;
raise_application_error(-20000,'Cannot delete item');
END;
但我正在逐漸變異表錯誤。這可能嗎?
感謝的!我無權訪問該應用程序。基本上,它是一個倉庫管理系統,如果這個產品沒有任何移動,它將刪除一個商品代碼。如果有,它只是停用該項目。我希望它始終停用該項目。界面使用的是Oracle Forms,因此它非常醜陋,所以我不擔心用戶是否看到oracle的錯誤,因爲當前的應用程序與他們分離。 – Lock
如果你可以更改oracle表單代碼來改變刪除按鈕功能,你可以做到這一點。否則,而不是'不能刪除項目'消息說,像raise_application_error中的'項目已刪除/停用'。 – Annjawn
但要小心突變表錯誤。 – Annjawn