Oracle SET TRANSACTION语句(设置事务)

在Oracle中,SET TRANSACTION语句可以用来设置事务的各种状态,比如只读、读/写、隔离级别,为事务分配名称或将事务分配回滚段等等。本教程要为大家带来的就是SET TRANSACTION语句的语法以及示例,教大家如何正确使用该语句。

 

SET TRANSACTION语法

Oracle中SET TRANSACTION语句的语法是:

SET TRANSACTION [ READ ONLY | READ WRITE ]
                [ ISOLATION LEVEL [ SERIALIZE | READ COMMITED ]
                [ USE ROLLBACK SEGMENT 'segment_name' ]
                [ NAME 'transaction_name' ];

参考

● READ ONLY:可以将事务设置为只读事务。

● READ WRITE:可以将事务设置为读/写事务。

● ISOLATION LEVEL: 如果指定,它有两个选项:

1.ISOLATION LEVEL SERIALIZE:如果事务尝试更新由另一个事务更新并未提交的资源,则事务将失败。

2.ISOLATION LEVEL READ COMMITTED:如果事务需要另一个事务持有的行锁,则事务将等待,直到行锁被释放。

● USE ROLLBACK SEGMENT:可选的。 如果指定,它将事务分配给由'segment_name'标识的回退段,该段是用引号括起来的段名称。

● NAME:为'transaction_name'标识的事务分配一个名称,该事务用引号括起来。

 

SET TRANSACTION示例

下面我们来看一个演示如何在Oracle中使用SET TRANSACTION语句的示例。

只读

首先,下面来看看看如何使用SET TRANSACTION语句将事务设置为只读。

SET TRANSACTION READ ONLY NAME 'RO_example';

此示例会将事务设置为只读,并为其分配“RO_example”的名称。

读写

下面是如何使用SET TRANSACTION语句将事务设置为读/写的示例:

SET TRANSACTION READ WRITE NAME 'RW_example';

在Oracle中,LOCK TABLE语句可以用来锁定表、表分区或表子分区。LOCK TABLE语法:LOCK TABLE语句的语法是:LOCK TABLE tables IN lock_mode MODE [ WAIT [, integer] | NOWAIT ];