Вопрос: У меня есть следующий триггер, чтобы посмотреть мой конкретный столбец «CHANGED», если он обновлен до 1, я хотел бы, чтобы он обновил ту же строку и столбец «CHANGED_DATE» до текущего SYSDATE. По какой-то причине я продолжаю получать эту ошибку, любая помощь будет очень признательна.Проблема с выпуском Oracle update
Ошибка
UPDATE "SYSADM"."SHIP_CALENDAR" SET CHANGED = '1' WHERE ROWID = 'AABCxCAAEAAAKYEAAB' AND ORA_ROWSCN = '6165377066'
ORA-04091: table SYSADM.SHIP_CALENDAR is mutating, trigger/function may not see it
ORA-06512: at "SYSADM.SHIP_CALENDAR_CHANGED", line 5
ORA-04088: error during execution of trigger 'SYSADM.SHIP_CALENDAR_CHANGED'
Триггер
create or replace TRIGGER SHIP_CALENDAR_CHANGED
AFTER UPDATE
OF CHANGED
ON SHIP_CALENDAR
REFERENCING OLD AS o NEW AS n
FOR EACH ROW
DECLARE
BEGIN
-- UPDATE SHIP CALENDAR SET UPDATE_CHANGE TO SYSDATE IF CHANGED CHANGES
IF :n.CHANGED = '1' then
UPDATE SHIP_CALENDAR
SET CHANGED_DATE = SYSDATE
WHERE SHIPMENT_ID = :o.SHIPMENT_ID;
END IF;
END;
Вы пробовали поиск? Есть много ответов о проблемах с «мутирующим триггером» – Aleksej