我正在做一个要求我执行一个包,执行 sql 然后提交的语句。
sql的执行决定了它是否成功,我正在检查受影响的sql代码行的数量。如果它不是 1,则提交(单独的命令)永远不会运行。
其他两个命令会发生什么,正如我所说的,我执行了一个执行包的命令,两个命令中的 sql 本身?
我正在做一个要求我执行一个包,执行 sql 然后提交的语句。
sql的执行决定了它是否成功,我正在检查受影响的sql代码行的数量。如果它不是 1,则提交(单独的命令)永远不会运行。
其他两个命令会发生什么,正如我所说的,我执行了一个执行包的命令,两个命令中的 sql 本身?
如果没有COMMIT
orROLLBACK
语句,则在会话结束时将回滚工作。
您可以在交易管理文档中找到一些详细的解释
UPDATE APC 是对的,文档比我更具体:
当发生以下任何一种情况时,交易结束:
用户发出不带 SAVEPOINT 子句的 COMMIT 或 ROLLBACK 语句。
用户运行 DDL 语句,例如 CREATE、DROP、RENAME 或 ALTER。如果当前事务包含任何 DML 语句,Oracle 数据库首先提交事务,然后将 DDL 语句作为新的单语句事务运行并提交。
用户断开与 Oracle 数据库的连接。当前事务已提交。
用户进程异常终止。当前事务被回滚。
注意:应用程序应始终在程序终止之前显式提交或撤消事务。
所以,我并没有真正回答你的问题。这取决于您的连接器在断开时的作用。