Oracle - 在ORA-03135连接丢失的情况下,事务会发生什么?

时间:2017-02-10 15:04:29

标签: sql oracle plsql oracle-sqldeveloper sqlplus

我需要在生产环境中运行一个删除语句,这需要花费很多时间,服务器在30分钟后关闭任何连接(ORA-03135与我在日志中看到的一样)。

如果我启动delete语句并且服务器将关闭连接会发生什么?声明是否会在服务器上完成执行,还是会立即将其关闭并回滚?在这种情况下,SQL * Plus set autocommit on命令可以提供帮助吗?

1 个答案:

答案 0 :(得分:2)

查看手册:https://docs.oracle.com/database/121/CNCPT/transact.htm#CNCPT037

  

交易结束   
当发生以下任何操作时,交易结束:

     
      
  • 用户发出不带SAVEPOINT子句的COMMIT或ROLLBACK语句。
  •   
  • 用户运行DDL命令,例如CREATE,DROP,RENAME或ALTER。
  •   
  • 用户通常从大多数Oracle数据库实用程序和工具退出,导致隐式提交当前事务。用户断开连接时的提交行为取决于应用程序并且是可配置的。
  •   
  • 客户端进程异常终止,导致事务使用存储在事务中的元数据隐式回滚   表和撤消段。
  •