您的位置:首页 > 其它

修改表A的某字段时将此字段内容传入表B修改对应字段内容的触发器写法

2015-01-09 11:48 183 查看

ORA-04091:表发生了变化触发器/函数不能读

 

create or replace trigger "TRIG_ONMODY_T_SUPERVISION_MX"

   after update on t_supervision_mx

   referencing old as o

   for each row

 declare

   sxfl VARCHAR2(64);

   PRAGMA AUTONOMOUS_TRANSACTION;

 begin

   if :o.mxtype='task' then

     select ab.status

           into sxfl

           from t_supervision_mx ab

          where ab.taskid = :o.taskid;

     if sxfl='申请撤销' then

        update t_supervisiontask a set a.taskstatus= 15  where a.id = :o.taskid;

        update t_supervisiontaskfeetback b set b.feetbackcontent= :o.faNKUIQINGKUANG where b.taskid= :o.taskid;

     end if;

     if sxfl='申请完成' then

        update t_supervisiontask a set a.taskstatus= 10  where a.id = :o.taskid;

        update t_supervisiontaskfeetback b set b.feetbackcontent= :o.faNKUIQINGKUANG where b.taskid= :o.taskid;

     end if;

    end if;

 commit;

 end TRIG_ONMODY_T_SUPERVISION_MX;

  

注意添加自治事务,否则将会出现

ORA-04091:表发生了变化触发器/函数不能读

的错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: