我正在开发一个项目,它执行以下操作:
- 截断临时表 T1。
- 将几千行插入临时表 T1。
- 执行一个包含一些提交语句的过程。
- 将表 T1 中的行插入其他相同的表(相对于结构) T2。
- 再执行 2 个带有 commit 语句的过程。
以上 5 个步骤对我来说是一笔交易。因此,要么全部完成,要么都不应该完成。
现在即使我执行 conn.rollback 如果发生一些错误,也很少有更改反映到数据库中。
程序中的提交语句是原因吗?截断表是否隐式提交到数据库?
如果是 ?有什么可能的解决方案?
提前致谢 !!!
PN:数据库在 oracle 中,我对 PL/SQL 的了解较少