如果应用程序回滚该 db2 过程事务,如何将 db2 过程数据存储在表中?



我想知道是否有任何方法可以将 db2 过程数据存储在表中,即使该应用程序已回滚该特定过程。

应用程序正在表 1 中执行更新语句,然后调用过程 proc1,该过程在输出游标中返回 N 或 Y。当过程 proc1 的输出为 N 时,应用程序将回滚事务,其中包括运行 db2 过程和对表 1 的更新。在过程 proc1 运行期间,当应用程序由于 proc1 输出为 N 而回滚事务时,有没有办法在 table_err 中插入记录?

这里使用的 db2 版本是 11.1 LUW

为此使用所谓的autonomous过程。
调用过程。

自治过程是在调用时执行的过程 在独立于原始事务的新事务中。什么时候 自治过程成功完成,它将提交 在过程中执行的工作,但如果不成功,则 过程回滚它执行的任何工作。无论结果如何 自主程序,称为自主过程的交易 程序不受影响。要将过程指定为自治过程,请指定 创建过程语句上的自治关键字。

最新更新