本文章来自http://hi.baidu.com/sqlercn/item/10f170c96fbbfad7964452b8

Oracle自治事务介绍

在正常情况下一但发出commit或是rollback语句就会把这之前的所有修改提交或回滚,但是在oracle中提供了一种自治事务,在自治事务中发出的commit或rollback语句只会对自治事务内的更改起做用而不会对自治事务外的修改起做用。可以通过以下例子来看到这一结果:

首先建立一个表Create table Msg (Msg varchar(50)) 用于存储消息

建立自治事务下的插入过程

Create or Replace procedure AutoNomouse_Insert as

pragma autonomouse_transcation;

begin

insert into Msg values('AutoNomouse Insert');

commit;

end;

注:pragma autonomouse_transcation 表示在这个过程中启动自治事务

建立正常情况下的插入过程

Create or Replace Procedure NonAutoNomouse_Insert as

begin

insert into Msg Values('NonAutonomouse Insert');

commit;

end;

下面在一个匿名块中分别调用上面的两个过程

begin

insert into Msg Values('This Main Info');

NonAutoNomouse_Insert;

rollback;

end

select * from Msg

Msg

__________________________________________________

This Main Info

NonAutonomouse Insert

可以看到正个事务在过程NonAutoNomouse_Insert中被提交了Rollback并不起做用。

下面调用自治事务的过程如下:

begin

insert into Msg Values('This Main Info');

AutoNomouse_Insert;

rollback;

end

select * from Msg

MSG

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

AutoNomouse Insert

可以看到在自治事务中只提交了自治事务内的更改,所以Rollback回滚了自治事务外的更改。

转载于:https://blog.51cto.com/4953664/1278732

Oracle自治事务相关推荐

  1. oracle自治事务的写法_Oracle的自治事务

    自治事务(autonomous transaction)允许你创建一个"事务中的事务",它能独立于其父事务提交或回滚.利用自治事务,可以挂起当前执行的事务,开始一个新事务,完成一些 ...

  2. Oracle之自治事务

    昨天处理项目中的一个业务需求要用到触发器实现,触发器中涉及到在inserting.deleting.updating之后来触发对表的操作,对于inserting.updating中的操作都可以正常实现 ...

  3. PostgreSQL Oracle兼容性之 - plpgsql 自治事务(autonomous_transaction)补丁

    PostgreSQL Oracle兼容性之 - plpgsql 自治事务(autonomous_transaction)补丁 作者 digoal 日期 2016-11-04 标签 PostgreSQL ...

  4. 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍

    AUTONOMOUS TRANSACTION(自治事务)的介绍 在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题,比如想在执行当前一个由多个DML组成的transaction(事 ...

  5. ORACLE中的自治事务

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 这是一个 ...

  6. oracle 自治事物,自治事务 - 努力创造未来! - BlogJava

    自治事务前的事务管理(一般事务管理) 像 DML 这样的数据库扣作都是在事务的上下文环境中执行的.事务是一个或多个 SQL 语句的序列,执行一定的工作逻辑单元.事务.定义的特定会话可以由 commit ...

  7. Oracle提供的自治事务记录日志的方法

    平时在存储过程或者触发器中,想对过程中出现的异常进行记录,但是又存在一个问题,就是异常的时候,之前的DML操作要回滚,那么对异常的记录的insert语句也要被回滚掉,怎么办?这个时候就可以用到Orac ...

  8. oracle触发器的自治事务

    1.插入数据,名次依次+1 今天有朋友提问说 ,oracle数据库怎么实现这个功能: 有一个排名表,插入一条数据排名为1的数据,之前表里数据1变成2,2,变成3类推.插入2,之前表里2变3,3变4类推 ...

  9. oracle:触发器,自治事务,instead of trigger,trigger

    触发器的格式: CREATE [OR REPLACE ] TRIGGER trigger_name {BEFORE| AFTER} {UPDATE| INSERT| DELETE|SELECT} ON ...

最新文章

  1. 12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
  2. java什么是最终类型_golang和java,谁才是最终答案?
  3. 关于同源策略的一些想法
  4. P3195 [HNOI2008]玩具装箱TOY(斜率优化)
  5. Thread打印值的含义
  6. MVC3学习 一 ViewBag和Html.Raw
  7. Python已成美国顶尖高校中最受欢迎的入门编程语言
  8. RabbitMQ负载均衡
  9. 金融云 > 产品常见问题 > 金融云VPC端口限制
  10. Python实战入门到精通第一讲——函数
  11. 数组元素的填充与替换、排序和复制
  12. [超详细] Apache网页优化:网页压缩与网页缓存超详细
  13. STM32定时器US延时
  14. 第82次上Topic课(Eyewitness)
  15. Java中的Collections.sort()
  16. 【目标检测】YOLOv5分离检测和识别
  17. qt android刘海屏状态栏,安卓手机刘海屏算抄袭苹果iPhone X吗?真相了
  18. 静态语言采用什么方式执行 如c语言,编程语言的两种执行方式
  19. java毕业设计社区管理系统Mybatis+系统+数据库+调试部署
  20. 单反、微单、卡片相机的区别

热门文章

  1. linux内核的syslets补丁
  2. 在Ubuntu kylin 14 64位上flashplayer 插件
  3. try-catch-finally中return的执行情况
  4. 【OpenCV学习】XML的读写
  5. Solaris10之SVM简析
  6. UPDATE 时主键冲突引发的思考
  7. P3201 [HNOI2009]梦幻布丁 [启发式合并][set]
  8. 京东大数据:南方姑娘更爱驾驭8cm以上高跟鞋
  9. C#操作IIS站点 Microsoft.Web.Administration.dll
  10. 不错的jquery插件