让我们说我有一个删除,更新和插入的SQL脚本......并且我曾经有另一个更新,我只想提交此更新。我怎么能这样做?
delete 1
delete 2
....
insert 1
....
update 1
....
insert 2
...
**update 2**
我只想提交更新2 ...我应该使用块还是什么?
感谢您的帮助
答案 0 :(得分:1)
你到底想要什么?请提供表名,插入/更新脚本等。可能您应该查看您实际需要做的事情,因为您尝试做的事情似乎是荒谬的,也是可以避免的。
这在技术上是可行的:
您可以使用update 2
将PRAGMA AUTONOMOUS_TRANSACTION
放入块(过程)中。这样,如果您在该块内部提交,则仅提交更新2。
然而,这是一个糟糕而混乱的修复 - 使用PRAGMA AUTONOMOUS_TRANSACTION
除了记录目的之外的其他任何东西。你最有可能最终破坏数据完整性和流程。
答案 1 :(得分:0)
您是直接使用PL / SQL吗?如果您使用的是C / C ++和OCI,则可以在单个数据库连接中使用多个事务并在它们之间切换。 PL / SQL中无法实现这样的功能。在PL / SQL中,您只能使用自主交易。