Oracle的自治事务
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,自治事务(autonomous transaction)允许你创建一个"事务中的事务",它能独立于其父事务提交或回滚。利用自治事务,可以挂起当前执行的事务,开始一个新事务,完成一些工作,然后提交或回滚
千家信息网最后更新 2025年11月07日Oracle的自治事务
自治事务(autonomous transaction)允许你创建一个"事务中的事务",它能独立于其父事务提交或回滚。利用自治事务,可以挂起当前执行的事务,开始一个新事务,完成一些工作,然后提交或回滚,所有这些都不影响当前所执行事务的状态。自治事务提供了一种用PL/SQL控制事务的新方法,可用于:
顶层匿名块;
本地(过程中的过程)、独立或打包的函数和过程;
对象类型的方法;
数据库触发器。
使用例子演示自治事务如何工作
--创建测试表用于保存信息zx@ORCL>create table t ( msg varchar2(25) );Table created.--创建自治事务的存储过程zx@ORCL>create or replace procedure Autonomous_Insert 2 as pragma autonomous_transaction;---指示自治事务语句 4 begin 5 insert into t values ( 'Autonomous Insert' ); 6 commit; 7 end; 8 /Procedure created.--创建普通存储过程zx@ORCL>create or replace procedure NonAutonomous_Insert 2 as 3 begin 4 insert into t values ( 'NonAutonomous Insert' ); 5 commit; 6 end; 7 /Procedure created.
观察使用PL/SQL代码中非自治事务的行为
zx@ORCL>begin 2 insert into t values ( 'Anonymous Block' ); 3 NonAutonomous_Insert; 4 rollback; 5 end; 6 /PL/SQL procedure successfully completed.zx@ORCL>select * from t;MSG---------------------------------------------------------------------------Anonymous BlockNonAutonomous Insert
可以观察到非自治事务的过程中的commit也把调用它的父事务也提交了,而父事务中的rollback没有起到作用。
再观察使用PL/SQL代码中非自治事务的行为
zx@ORCL>delete from t;2 rows deleted.zx@ORCL>commit;Commit complete.zx@ORCL>begin insert into t values ( 'Anonymous Block' ); Autonomous_Insert; rollback;end; 6 /PL/SQL procedure successfully completed.zx@ORCL>select * from t;MSG---------------------------------------------------------------------------Autonomous Insert
可以看到,自治事务过程中的commit只把它本身的事务提交了,而对于父事务的语句没有起到作用,而父事务中的rollback对自治事务中的语句也没有作用。
事务
自治
过程
作用
语句
观察
代码
方法
行为
中非
存储
工作
独立
普通
例子
信息
函数
对象
指示
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
家政类app软件开发
架设一个web服务器
广东一站式软件开发市场价
软件开发招聘 阜阳
易语言小型数据库
微信数据库什么时候更新
如何打服务器
网络安全绩效标准暂行
网络安全销售人员如何销售
关于网络技术的求职信
吉林精益管理软件开发
外卖配送软件开发
计算机网络技术基础传输层图
苏州金融软件开发
互联网科技复盘
手机软件开发实训报告小结
网络安全风险最低是什么意思
财务数据库表设计单位
国家网络安全教育绘画
网络技术与课堂
docker 如何发布到服务器
衢州多媒体视频系统服务器
幽默搞笑的软件开发文案
ios矢量软件开发
关系数据库对关系有哪些主要限制
微信数据库什么时候更新
软件开发 螺旋模型 案例
软件开发会不会饱和
广兴源互联网智慧科技园租金
方舟手机服务器怎么开启