oracle read only 事务,oracle set transaction read only与dbms_transaction实现事务transaction控制...

SQL> show user

User is "SYS"

SQL> set transaction read only;

Transaction set

SQL> insert into t_table values(3);

1 row inserted

SQL> commit;

Commit complete

---sys用户 set transaction read only不生效

SQL> select * from t_table;

A

---------------------------------------

1

2

3

SQL>

SQL>

SQL> ---换另一个普通用户

SQL> conn

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0

Connected as

SQL> create table t_transaction(a int);

Table created

SQL> set transaction read only;

Transaction set

SQL> insert into t_table values(3);

insert into t_table values(3)

ORA-00942: table or view does not exist

---仅在非sys用户 set transaction read only才生效

SQL> insert into t_transaction values(3);

insert into t_transaction values(3)

ORA-01456: may not perform. insert/delete/update operation inside a READ ONLY transaction

SQL> delete from t_transaction;

delete from t_transaction

ORA-01456: may not perform. insert/delete/update operation inside a READ ONLY transaction

SQL> update   t_transaction set a=3;

update   t_transaction set a=3

ORA-01456: may not perform. insert/delete/update operation inside a READ ONLY transaction

--truncate为ddl语句不受set transaction read only影响

SQL> truncate table t_transaction;

Table truncated

SQL> show user

User is "tbl_bck"

---也可以用dbms_transaction包实现上述的只读事务功能

SQL> exec dbms_transaction.read_only;

PL/SQL procedure successfully completed

SQL> insert into t_transaction values(8);

insert into t_transaction values(8)

ORA-01456: may not perform. insert/delete/update operation inside a READ ONLY transaction

--dbms_transaction.read_only|write只能用于事务开始而非结束

SQL> exec dbms_transaction.read_write;

begin dbms_transaction.read_write; end;

ORA-01453: SET TRANSACTION must be first statement of transaction

ORA-06512: at "SYS.DBMS_TRANSACTION", line 60

ORA-06512: at line 2

SQL>

SQL>

SQL> set transaction read write;

set transaction read write

ORA-01453: SET TRANSACTION must be first statement of transaction

---必须用dbms_transaction.commit或rollback方可结束一个只读事务

SQL> exec dbms_transaction.commit;

PL/SQL procedure successfully completed

SQL> insert into t_transaction values(8);

1 row inserted

SQL> commit;

Commit complete

---dbms_transaction包另一个功能可以直接内嵌于存储过程中,进行针对性的控制

SQL> create or replace procedure proc_transaction

2  as

3  v_a pls_integer;

4  begin

5  dbms_transaction.read_only;

6  select count(1) into v_a from dual;

7  dbms_transaction.commit;

8  insert into t_transaction values(9);

9  commit;

10  end;

11  /

Procedure created

SQL> exec proc_transaction;

PL/SQL procedure successfully completed

SQL> select * from t_transaction;

A

---------------------------------------

8

9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码

我是Vijetha,我正在研究报告6i,我很陌生 . 我有以下查询 .在front_end中,在Reports Parameter中,当用户单击“运行”按钮时,它将询问START_DATE和END_DATE输入 .如果用户提供START_DATE和END_DATE或者不提供输入&#…

HTML/CSS/JavaScript学习总结(转)

HTML 网站开发的主要原则是: – 用标签元素HTML描述网页的内容结构; – 用CSS描述网页的排版布局; – 用JavaScript描述网页的事件处理,即鼠标或键盘在网页元素上的动作后的程序 HTML(Hyper Text Mark-up Language 超文…

oracle引用vs,VS2013中使用oracle,有关引用哪个.dll

Oracle、Microsoft 和第三方供应商都提供了针对 Oracle 产品进行了优化的数据供应程序。 Oracle 和 Microsoft 免费提供其 Oracle 数据供应程序。访问 Oracle 的操作有些类似于对 Sql Server 的操作。对Oracle 的访问有以下几种数据提供程序。 Microsoft.NET Oracle 提供程序 O…

贪心方法

1.背包问题 按效益值/重量 进行排序输入 2.带限期的作用排序 按效益值进行排序输入 3 最小生成树: 贪心方法:每次计入成本最小的边 原树T, 欲构造的最小生成树T Prim: 从T中选与T中结点相连的成本最小的边。 且:边之前…

oracle语法官方文档,Oracle官方文档必备语法知识

很多Oracle DBA虽然接触Oracle时间很长,但是一旦想不起语法或找不出相应参数时,习惯百度或谷歌。虽然已经下载了官方文档,但是Oracle官方文档必备语法知识[日期:2015-04-21]来源:Linux社区作者:kuqlan[字体…

新中大oracle实列名,新中大财务软件操作流程(完整版)

新中大财务软件最基本的三个模块:核算单位、财务处理系统、报表处理系统。简单地说,核算单位模块是用于建账,财务处理系统用于登账,报表处理系统用于出报表的。一、总账处理系统1、建账套双击财务软件图标 → 在登录界面选择用户编…

编写DLL所学所思(1)——导出函数

烛秋 http://www.cnblogs.com/cswuyg/archive/2011/09/30/dll.html 动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。 (1) 显式调用:使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。 &am…

linux切换任务命令,Linux top详解之交互命令、命令行选项

top交互命令我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。2.1 ‘h’: 帮助首先,我们可以用’h’或者’?’显示交互命令的帮助菜单。2.2 “或者”: 刷新显示top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新&am…

linux 内核地址随机化,GNU/Linux内核的地址随机化

地址空间布局随机化(ASLR)是一项增加安全性的技术,***者发现漏洞之后开始编写exploit时如果要考虑绕过ASLR这会增加编写exploit的难度,最早是2001年Grsecurity社区(强悍的社区,直到今天还在为各种各样的加固为自由软件安全社区作出持续而杰出…

Yii2的一些问题

Yii2中删除能不能串着用 Yii2中find、findAll有什么区别 Yii2中User::findOne($id)和User::find->where([id>1])->one; 会员登录信息 是以什么样的形式存放在Yii::$app->user->identity 里面的? session的形式 http://www.cnblogs.com/kuyuecs/archi…

linux系统硬盘设置密码,LUKS:Linux下磁盘加密

Linux下磁盘加密LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘…

Hibernate查询

9.1 Hibernate数据查询 数据查询与检索是Hibernate的一个亮点。Hibernate的数据查询方式主要有3种,它们是: l Hibernate Query Language(HQL) l Criteria Query l Native SQL 下面对这3种查询方式分别进…

linux x86 io端口映射,linux中的 IO端口映射和IO内存映射

下面是今天看到两篇关于linux中的 IO端口映射和IO内存映射的文章,时间关系,没来得及深入理解,有空好好看看CPU地址空间CPU地址空间(一)地址的概念1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存…

单例模式 创建对象

两种选择 1 使用pthread_once, once是类的成员变量 只执行一次Create create的作用是创建一个对象 2 使用 static lock 如下所示,注意lock必须是static的,否则是局部变量,每个线程都有自己的lock,无法保证只执行一次。…

Linux c编译库路径,【一点一点学Linux C】交叉编译时候如何配置连接库的搜索路径...

交叉编译的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做编译链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉编译的时候,要采取一些方法使得在编译链接的时候找到…

[NBUT 1458 Teemo]区间第k大问题,划分树

裸的区间第k大问题&#xff0c;划分树搞起。 #pragma comment(linker, "/STACK:10240000") #include <map> #include <set> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #inc…

Linux的软件包封装格式有,linux软件安装包详解---全

详细介绍了常见的四种Linux应用软件安装包及其安装方法。一、解析Linux应用软件安装包&#xff0c;通常Linux应用软件的安装包有四种&#xff1a;1) tar包&#xff0c;如software-1.2.3-1.tar.gz。他是使用UNIX系统的打包工具tar打包的。2) rpm包&#xff0c;如software-1.2.3-…

人生的第一个博客(●'◡'●)ノ♥--开博典礼

嘛&#xff0c;说实话&#xff0c;现在才开始&#xff0c;实在是有点晚了&#xff0c;一不小心大学都过去1年了_(:3 」∠)_ 我在专业方面的起步也是相当晚的&#xff0c;身为计算机专业&#xff0c;编程却从大学才开始正式接触&#xff0c;进入大学时其他方面的能力也都约等于0…

linux查看运行钟的tomcat,linux查看tomcat启动运行日志

Linux0&period;11内核--进程调度分析之2&period;调度[版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5596830.html ] 上一篇说到进程调度归根结底是调用timer_interrupt函数, ...iReport 下载地址iReport 下载地址: https://osdn.jp/projects/sfnet…

8月面试题目收录

面试题收录 常见兼容性问题&#xff1f; * png24位的图片在iE6浏览器上出现背景&#xff0c;解决方案是做成PNG8.* 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。* IE6双边距bug:块属性标签float后&#xff0c;又有横行的margin情况…