当oracle触发器 当A表的触发器,调用B表的触发器,这时对A表进行了查询时,如果再就行A表的更新,这样会用问题的,用自制事务也不能解决,我们就应该在A表的触发器上去进行更新,这样才能解决问题。
BEGIN
fc := null;
for rec in (select b.factcode from ReimFactPayee a left join ReimFact b on a.factid = b.factid
where a.txid=:new.txid)loop
fc := rec.factcode;
end loop;
if fc is null then
:new.errhandle := 10;--把A表的errhandle更新,在B表中是不能更新的。
end if;
UPDATE ReimFactPayee
SET orderstate = 2
WHERE txid = :NEW.txid;
END;