我收到錯誤ORA-04091,而該觸發器被觸發:變異表錯誤,同時發射扳機
CREATE OR REPLACE TRIGGER SendNotifications
AFTER UPDATE OF penalty_amount ON Penalites
FOR EACH ROW
DECLARE
phone_no number(9,0);
BEGIN
SELECT PHONE_NUMBER INTO phone_no
FROM ADRESSES
INNER JOIN ORDERS
ON adresses.ID_READER = orders.ID_READER
INNER JOIN PENALITES
ON orders.ID_ORDER = penalites.ID_ORDER
WHERE :new.ISPAID = 'N';
DBMS_OUTPUT.PUT_LINE('Phone numbers where selected.');
END;
/
我想我應該用新的。和:老。但我不知道如何處理它。你能給我任何建議或出發點嗎?
你想完成什麼?首先,除非將數據選擇到某個局部變量或打開遊標,否則不能有'select'語句。觸發器不能返回任何東西給調用者,所以你不能打開並返回一個'sys_refcursor'。如果你想寫一個遊標循環,並且你只想處理與正在被修改的'penalty'行有關的行,你可以刪除這個連接到'penalty'並使用'orders.id_order =:new.id_order',但是我我不確定那是你真正想要的。 –
我想選擇這個到局部變量。我更新了我的帖子。 – monterinio