我正在尝试创建一个Oracle触发器,它会在某个表的每个插入或更新记录上更新entry_stamp
列(type = DATE
)。这是我的剧本:
CREATE OR REPLACE TRIGGER mytable_entry_stamp
AFTER INSERT OR UPDATE ON mytable FOR EACH ROW
BEGIN :NEW.entry_stamp := SYSDATE; END;
我收到此错误:
ORA-04084:无法更改此触发类型的新值
答案 0 :(得分:2)
来自Oracle/PLSQL: AFTER UPDATE Trigger:
与MSSQL不同,Oracle似乎无法更新AFTER
触发器内的记录。因此它保留用于记录/审计目的,即可以在另一个表中插入或更新记录。将此触发器转换为BEFORE
之后,它完美无缺。