事务是由一个或多个SQL语句组成的逻辑操作单位。事务具备原子性(atomic)。
一个事务开始于用户提交的第一条可执行的SQL语句。结束语之后进行的提交或回滚操作。使用COMMIT或ROLLBACK语句能够显示的结束事务,而提交一个DDL语句可以隐式的结束事务。
×可执行的SQL语句指产生了对实例的调用的SQL语句,包括DML和DLL语句。
一个成功执行的SQL语句与一个提交的事务是有区别的。一个SQL语句成功执行表明此语句:
解析正常
是有效的SQL语法结构
作为一个独立的语句运行无错误。
但是在包含此语句的事务被提交之前,整个事务都可以被回滚,事务内所有语句对数据库的修改都可以被撤销,尽管发生了回滚,事务内的SQL语句确实成功执行的。
当一个事务开始时,Oracle为此事务分配一个可用的撤销表空间来记录其产生的回滚条目(rollback entry)。
一个事务在满足以下条件之一时结束:
a 用户提交了commit 语句,或不包含savepoint 自居的rollback语句
b 用户执行了create,drop,rename,或alter 等ddl语句。如果当前事务中包含dml语句,那么oracle 首先提交此事务,然后将DDl语句作为一个只包含一条Sql语句的新事务运行并提交。
c 用户断开了与Oracle的连接,当前事务将被提交
d 用户进程异常结束,则当前事务被回滚。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22206864/viewspace-746379/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22206864/viewspace-746379/