我正在尝试在java函数中进行一些DML操作。并得到错误。
首先,我打开连接并执行DML。 然后在同一个函数中,我调用的程序使用相同的表进行DML操作。程序中有commit语句。
我正在使用XA oracle数据源,因此启用了自动提交,我不需要在java中进行提交。
但是我得到的是ORA-06519:检测到活动的自治事务并回滚。我无法在java中指定commit选项,因为它会给出错误。
任何人都可以帮助我。
答案 0 :(得分:0)
在功能和程序的开头使用pragma serially_reusable
,如下所示:
创建或替换程序pr_dml_operation
pragma serially_reusable
;
v_abc_1号码;
v_def_2 date;
...
的开始强>...
...
<强>端强>
顺便说一句,从不在您存储的编程块中使用 提交 语句。外部问题。否则,它可能会损坏您的某些 dml 操作的 交易完整性 。