oracle - PRAGMA AUTONOMOUS_TRANSACTION
问题描述
我有带有 PRAGMA AUTONOMOUS_TRANSACTION 的过程 A 来记录主程序的活动。
现在我在程序 B 中调用该程序 A 以在程序 B 中记录活动过程。如果程序 A 中发生任何错误,它也会使程序 B 失败。如何避免主程序失败 B.
解决方案
该日志记录过程做了什么以使其可能失败?不是纯INSERT
+COMMIT
吗?
无论如何:最简单(也可能是最糟糕的)选项是使用异常处理程序部分,例如
your_procedure is
begin
do something;
exception
when others then null;
end;
如果您真的不在乎是否发生了不好的事情,那也没关系,但是-目的是什么?你认为你做了什么,甲骨文没有抱怨,程序什么也不做,你不知道发生了什么。
因此,您最好确保此“记录”过程不会失败。
推荐阅读
- hibernate - Hibernate envers 抛出 ClassCastException:HashMap 无法转换为 Integer
- windows - 将子域指向它的文件夹 IIS
- git - 在 Visual Studio Code 中通过 Git 和 Github 使用 Commit 命令
- javascript - 如何使用 jquery 将数据属性发送到 php 变量?
- sql - 带有子查询错误的案例表达式:无法绑定
- dll - 用什么程序可以打开dll文件
- java - JCommander 是否支持不带前缀的动态参数?
- sql-server - 在存储过程中为服务器创建别名
- sql - 如果一列值没有变化,则 SQL 查询以获取最旧的 start_date
- firebase - 如何使用共享首选项保持用户登录颤动