在 Oracle 中,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" 标识的事务分配一个名称,该事务用引号括起来。
下面我们来看一个演示如何在 Oracle 中使用 SET TRANSACTION 语句的示例。
首先,下面来看看看如何使用SET TRANSACTION语句将事务设置为只读。
SET TRANSACTION READ ONLY NAME "RO_example";
此示例会将事务设置为只读,并为其分配“RO_example”的名称。
下面是如何使用 SET TRANSACTION 语句将事务设置为读/写的示例:
SET TRANSACTION READ WRITE NAME "RW_example";
一般在做报表查询的时候,可以先设置该查询事务为一个只读事务,以避免出现写操作。
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;
以上就是 为大家带来的 Oracle 中 SET TRANSACTION 语句的详细用法介绍,希望对各位学习 Oracle 的用户有所帮助。
在本章中,我们将学习如何在WordPress中编辑链接。以下是在WordPress中Edit Links的简单步骤步骤(1)- 点击Pages → All Pages,...
在本章中,我们将学习如何在WordPress中自定义插件,而无需编写任何HTML或CSS。 它通常是多用户网站的一个大额外添加。 这种新方...
在本章中,我们将学习如何自定义主题。 自定义主题可帮助您为网站提供新外观。 在这里您可以更改背景图片/颜色,添加标题,做更...
Revel模块介绍模块是一些包,可以集成到Revel程序中。Revel允许多个Revel程序(或第三方代码)共享控制器、模板、资源和其他代码...
UDP(UserDatagramProtocol)一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP服务端通过gudp.S...