Oracle 如何使用触发器刷新记录修改时间?
本文介绍了Oracle 如何使用触发器刷新记录修改时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
TI_EVENT_PLAN的记录有更新时,更新字段UDT_DT=systimestamp.
下面触发器报错
ORA-04084: 无法更改此触发器类型的 NEW 值
create or replace trigger trg_ti_event_plan_a_u
after update on TI_EVENT_PLAN
for each row
declare
-- local variables here
begin
--update TI_EVENT_PLAN set udt_dt=systimestamp where srl_num=:new.srl_num;
:new.udt_dt := systimestamp;
end TRG_TI_EVENT_PLAN_A_I;
解决方案
原来是在PL/SQL Developer表边界界面修改完触发器没有点击应用。
后面优化成:
CREATE OR REPLACE TRIGGER trg_ti_event_plan_b_iu
BEFORE INSERT OR UPDATE ON ti_event_plan
FOR EACH ROW
DECLARE
-- local variables here
BEGIN
IF inserting THEN
:new.srl_num := seq_ti_event_plan.nextval;
:new.crt_dt := systimestamp;
ELSE
:new.udt_dt := systimestamp;
END IF;
END;
这篇关于Oracle 如何使用触发器刷新记录修改时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文