21、oracle报ORA-04091发生了变化, 触发器函数不能读它

21、oracle报ORA-04091发生了变化, 触发器函数不能读它

​ 在对某表进行更新的时候,调用了一个函数,函数中又使用该表进行读的操作,会导致读取到错误的数据。

所以在函数中进行事务的锁定。

解决方案:在begin之前增加pragma autonomous_transaction;,在end之前增加commit;

funcation xxx_test()...

pragma autonomous_transaction;

begin
	...
	...
    return Result;

    commit;

end;
posted @ 2024-02-26 15:04  站着说话不腰疼  阅读(653)  评论(0)    收藏  举报