希望有人能幫助解決這個問題。我是觸發器的新手,我試圖創建一個觸發器來檢查被修改的記錄是否具有特定的值。如何在同一張表上查詢和執行觸發器
示例 我有一個表稱爲歸檔具有filing_id和filing_status,我想阻止某人更新或刪除該表中的任何記錄具有filing_status =「FILED」。 所以,如果我有以下
Filing_id Filing_status Val
--------- ------------- ---
0 Filed X
如果有人試圖修改瓦爾觸發器應停止 我創建了以下觸發:
CREATE or replace TRIGGER TRG_PREV_FILING
BEFORE DELETE or UPDATE
ON PF.FILING
FOR EACH ROW
declare
rowcnt number;
BEGIN
SELECT COUNT(filing_id) INTO rowcnt FROM PF.FILING
where status = 'FILED'
and filing_id = :new.filing_id;
if (rowcnt > 0)
then
raise_application_error (-20100, 'You can not delete Or Update initial record');
end if;
END;
我面對的是我得到的問題: ORA-04091這是「表格歸檔突變,觸發器/函數可能看不到它」
所以基本上我不能查詢在同一張表上,我正在執行觸發器?這是我的情況的問題,有沒有人知道這方面的工作?
我感謝所有幫助
非常感謝。我必須學習更多關於觸發器的知識。 – user955165