0

我正在做一个要求我执行一个包,执行 sql 然后提交的语句。

sql的执行决定了它是否成功,我正在检查受影响的sql代码行的数量。如果它不是 1,则提交(单独的命令)永远不会运行。

其他两个命令会发生什么,正如我所说的,我执行了一个执行包的命令,两个命令中的 sql 本身?

4

1 回答 1

3

如果没有COMMITorROLLBACK语句,则在会话结束时将回滚工作。

您可以在交易管理文档中找到一些详细的解释

UPDATE APC 是对的,文档比我更具体:

当发生以下任何一种情况时,交易结束:

用户发出不带 SAVEPOINT 子句的 COMMIT 或 ROLLBACK 语句。

用户运行 DDL 语句,例如 CREATE、DROP、RENAME 或 ALTER。如果当前事务包含任何 DML 语句,Oracle 数据库首先提交事务,然后将 DDL 语句作为新的单语句事务运行并提交。

用户断开与 Oracle 数据库的连接。当前事务已提交。

用户进程异常终止。当前事务被回滚。

注意:应用程序应始终在程序终止之前显式提交或撤消事务。

所以,我并没有真正回答你的问题。这取决于您的连接器在断开时的作用。

于 2013-02-25T08:44:28.953 回答