读书人

一个简单触发器的有关问题

发布时间: 2013-11-29 00:21:24 作者: rapoo

求助:一个简单触发器的问题
本帖最后由 E_Java 于 2013-08-02 16:26:34 编辑 行级触发器,在更新一张表的一条记录之后把该条记录的某个字段设为sysdate的月份

create or replace trigger trg_dp_update_dp_detail
after update on dp_detail
referencing old as old new as new
for each row
begin
update dp_detail set month = (select EXTRACT(MONTH FROM SYSDATE) from dual) where DP_DETAIL_ID = :old.DP_DETAIL_ID;
end;
/

执行的更新的时候触发器执行不成功,包ORA-04091、ORA-06512、ORA-04088错,错误堆栈源显示的是update dp_detail set month = (select EXTRACT(MONTH FROM SYSDATE) from dual) where DP_DETAIL_ID = :old.DP_DETAIL_ID;
这局有错 触发器
[解决办法]
明显的变异表错误...
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

明显的变异表错误...
额,该怎么修改呢

直接:new.month = EXTRACT(MONTH FROM SYSDATE);

after之后不能修改new的值,我换成old也说不能更改old引用的值
使用前置触发, BEFORE update on dp_detail

读书人网 >oracle

热点推荐