个人使用示例:

CREATE OR REPLACE PROCEDURE logs(p_remark VARCHAR2,
p_log CLOB) AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
--数据操作
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;

自治事务是由调用程序启动的独立事务。自治事务中SQL命令的提交或回滚对调用程序的任何事务中的提交或回滚都没有影响。调用程序中的提交或回滚对自治事务中SQL命令的提交或回滚也没有影响。

通过在SPL块的声明部分中指定以下指令,可将SPL程序声明为自治事务:

   PRAGMA AUTONOMOUS_TRANSACTION;

以下SPL程序可包含 PRAGMA AUTONOMOUS_TRANSACTION:

  • 独立的存储过程和函数。
  • 匿名块。
  • 包中声明为子程序的存储过程和函数以及其他调用存储过程、函数和匿名块。
  • 触发器。
  • 对象类型方法。

下面是与自治事务有关的问题和限制:

  • 每个自治事务只要在进行中,就会消耗一个连接槽。在某些情况下,这可能意味着应增大postgresql.conf文件中的max_connections参数。
  • 在大多数方面,自治事务的行为就像是一个完全独立的会话,但GUC(即通过SET建立的设置)是一个有意制造的例外。自治事务吸收周围的值,并可以将它们提交的值传播到外部事务。
  • 自治事务可以嵌套,但在单个会话中自治事务的嵌套级别限制为16级。
  • 自治事务中不支持并行查询。
  • 自治事务的PolarDB-O实现与Oracle数据库不完全兼容,因为如果SPL块末尾有未提交的事务,则PolarDB-O自治事务不会产生错误。

资料来源:PRAGMA AUTONOMOUS_TRANSACTION_事务控制_开发存储过程_开发指南_PolarDB-O 云原生数据库 - 阿里云 (aliyun.com)

ORACLE PRAGMA AUTONOMOUS_TRANSACTION 自治事务 单独提交某一段操作的更多相关文章

  1. Oracle与SQL自治事务

    自治事务 自治事务是独立的事务操作,如果考虑到事务回滚,必须单独写成一个触发器来完成, 一个事务A在另一个事务B内被调用,那个事务A是自治事务,自治事务A执行过程中会脱离其session内未执行完毕的 ...

  2. ORACLE触发器的自治事务的注意事项

    直接上代码: Create OR replace Trigger TR_ROBXMX_CLDJBHHX After INSERT OR UPDATE OR DELETE ON ROBXMX1 --要监 ...

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

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

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

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

  5. Oracle 通过触发器 来创建 同步临时表 及处理 通过 自治事务 来解决 查询 基表的问题

    // 触发器 create or replace trigger tr_sync_BD_MARBASCLASS after INSERT or UPDATE on BD_MARBASCLASS for ...

  6. oracle自治事务(PRAGMA AUTONOMOUS_TRANSACTION)

    这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了PRAGMA AUTONOMOUS_TRANSAC ...

  7. PRAGMA AUTONOMOUS_TRANSACTION

    转自 http://blog.csdn.net/pan_tian/article/details/7675800 这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查 ...

  8. [转]了解oracle自治事务

    http://blog.csdn.net/indexman/article/details/7799862 1.什么是Oracle自治事务 在官方文档中,是这样的定义的“Autonomous tran ...

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

    create or replace trigger TRI_FC83_INSERT before insert ON FC83 FOR EACH ROW declare PRAGMA AUTONOMO ...

随机推荐

  1. currentColor在CSS的含义

    currentColor属于CSS中的一个变量,当然也有人称之为CSS的自定义属性,其代表"当前颜色". 在CSS中设置了color的值后,相应CSS代码块(由两个花括号包裹的内容 ...

  2. quic 2 ietf-transport-draft-ietf-quic-transport-09

    quic的优点 Low-latency connection establishment Multiplexing without head-of-line blocking Authenticate ...

  3. linux nf_conntrack 连接跟踪机制 3-hook

    conntrack hook函数分析 enum nf_ip_hook_priorities { NF_IP_PRI_FIRST = INT_MIN, NF_IP_PRI_CONNTRACK_DEFRA ...

  4. 极客mysql13

    1:为啥删除了表的一半数8据,表文文件大小没变化?因为delete 命令其实只是把记录的位置,或者数据页标记为了"可复用",但磁盘文件的大小是不会变的.也可以认为是一种逻辑删除,所 ...

  5. binary hacks读数笔记(file命令与magic file)

    file命令的作用是用于检验文件的类型,并打印至终端.file命令检验文件类型按以下顺序来完成: 检验文件系统(Filesystem)中支持的文件类型. 检验magic file规则. 检验文件内容的 ...

  6. AHB SRAM控制器设计

  7. linux文件的3个时间和7种文件类型

    linux文件的三个时间:  atime: access time --最近访问时间. ctime: change time --最近改变时间. mtime:modify time --最近修改时间. ...

  8. TypeError: Cannot read property 'Component' of undefined

    继续跟着阮一峰的教程走,下面写到PropTypes的getDefaultProps时,又出现了问题,基于上一个createClass的报错换成了Component写法 错误描述: 解决方法:引入rea ...

  9. REDHAT 7.5beta 新推出的VDO功能

    前言 关于VDO VDO的技术来源于收购的Permabit公司,一个专门从事重删技术的公司,所以技术可靠性是没有问题的 VDO是一个内核模块,目的是通过重删减少磁盘的空间占用,以及减少复制带宽,VDO ...

  10. C#高级编程之特性

    特性定义 MSDN的描述:使用特性,可以有效地将元数据或声明性信息与代码(程序集.类型.方法.属性等)相关联. 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性. 参考此处作者的解释 h ...