Oracle 事务的开启和结束

2年前 (2022) 程序员胖胖胖虎阿
139 0 0

Oracle 事务的开启和结束

1

Oracle的事务开始于一个DML语句。
当以下情况发生时,事务结束:
1、COMMIT/ROLLBACK
2、执行了DDL/DCL语句
3、客户端主动断开数据库的连接(DISCONNECT)
4、数据库关闭(宕机)
另外,一个DDL/DCL语句实际上就是一个事务,其中隐含了COMMIT。
Oracle不需要特别的去指定事务的开始和结束。一个事务的结束就是下一个事务的开始。

2

事务是用来分割数据库活动的逻辑工作单元。事务既有起点,也有终点:当发生下列事件时,事务就开始了:

1.连接到数据库上,并执行第一条DML语句

2.前一个事务结束后,又输入另外一条DML语句

在下列事件之一发生时,事务就结束了:

1.执行Commit或者RollBack语句

2.执行一条DDL语句,例如Create Table语句;在这种情况下,会自动执行Commit语句

3.执行一条DCL语句,例如Grant语句;在这种情况下,会自动执行Commit语句

4.断开与数据库链接。在退出SQLPlus事,通常会输入EXit命令,此时会自动执行Commit语句。如果SQLPlus被意外终止(例如运行SQL*Plus的计算机崩溃)那么就会执行RollBack语句

事务完成后,如果不显式的提交或者回滚事务,都被认为是不好的编程习惯,因此确保在每个事物后面都要执行Commit或者RollBack语句。

事务中任何地方都可以设置一个保存点(savepoint),这样可以将修改回滚到保存点处。

commit

create table  transaction_table8 as select * from dba_objects;
insert into transaction_table8 select * from transaction_table8;

Oracle 事务的开启和结束

select xid, status from v$transaction;

Oracle 事务的开启和结束

Truncate – DDL

Oracle 事务的开启和结束
Oracle 事务的开启和结束

select xxx for update

select * from transaction_table8 where rownum=1 for update;

Oracle 事务的开启和结束

Oracle 事务的开启和结束

select…for update使用方法

失败的DML 和 exit

Oracle 事务的开启和结束
Oracle 事务的开启和结束

DCL

Oracle 事务的开启和结束
Oracle 事务的开启和结束
Oracle 事务的开启和结束

版权声明:程序员胖胖胖虎阿 发表于 2022年11月20日 下午8:24。
转载请注明:Oracle 事务的开启和结束 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...