oracle的set调控,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';

use rollback segment 实例

一般在做报表查询的时候,可以先设置该查询事务为一个只读事务,以避免出现写操作。

DECLARE

l_name VARCHAR2(100);

l_age NUMBER;

l_sex VARCHAR2(2);

BEGIN

-- 为保证set transaction是事务的第一条语句,先使用commit或rollback来结束掉前面可能存在的事务

COMMIT;

-- 使用name给事务命名

SET TRANSACTION READ ONLY NAME '查询报表';

SELECT NAME

INTO l_name

FROM student

WHERE student_id = 1001;

SELECT age

INTO l_age

FROM student

WHERE student_id = 1001;

SELECT sex

INTO l_sex

FROM student

WHERE student_id = 1001;

-- 终止只读事务

COMMIT;

dbms_output.put_line('输出:' || l_name || l_age || l_sex);

END;

以上就是 W3Cschool 为大家带来的 Oracle 中 SET TRANSACTION 语句的详细用法介绍,希望对各位学习 Oracle 的用户有所帮助。

(责任编辑:admin)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值