ORACLE PRAGMA AUTONOMOUS_TRANSACTION 自治事务 单独提交某一段操作
个人使用示例:
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程序声明为自治事务:
以下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 自治事务 单独提交某一段操作的更多相关文章
- Oracle与SQL自治事务
自治事务 自治事务是独立的事务操作,如果考虑到事务回滚,必须单独写成一个触发器来完成, 一个事务A在另一个事务B内被调用,那个事务A是自治事务,自治事务A执行过程中会脱离其session内未执行完毕的 ...
- ORACLE触发器的自治事务的注意事项
直接上代码: Create OR replace Trigger TR_ROBXMX_CLDJBHHX After INSERT OR UPDATE OR DELETE ON ROBXMX1 --要监 ...
- 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
AUTONOMOUS TRANSACTION(自治事务)的介绍 在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题,比如想在执行当前一个由多个DML组成的transaction(事 ...
- (转)关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
AUTONOMOUS TRANSACTION(自治事务)的介绍 在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题,比如想在执行当前一个由多个DML组成的transaction(事 ...
- Oracle 通过触发器 来创建 同步临时表 及处理 通过 自治事务 来解决 查询 基表的问题
// 触发器 create or replace trigger tr_sync_BD_MARBASCLASS after INSERT or UPDATE on BD_MARBASCLASS for ...
- oracle自治事务(PRAGMA AUTONOMOUS_TRANSACTION)
这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了PRAGMA AUTONOMOUS_TRANSAC ...
- PRAGMA AUTONOMOUS_TRANSACTION
转自 http://blog.csdn.net/pan_tian/article/details/7675800 这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查 ...
- [转]了解oracle自治事务
http://blog.csdn.net/indexman/article/details/7799862 1.什么是Oracle自治事务 在官方文档中,是这样的定义的“Autonomous tran ...
- oracle:触发器,自治事务 trigger
create or replace trigger TRI_FC83_INSERT before insert ON FC83 FOR EACH ROW declare PRAGMA AUTONOMO ...
随机推荐
- Javascript 参数传递
又一个基本概念出问题,参数传递都是值传递, var a={x:10} function test(obj){obj=1} test(a) console.log(a) 输出什么,如果你说1,那就错了, ...
- python菜鸟教程学习3:基础语法
菜鸟教程对应网址:https://www.runoob.com/python3/python3-basic-syntax.html 编码:python3用UTF-8编码,所有字符串都是unicode字 ...
- MiniCat:手写Http服务器
minicat 项目介绍 已实现http基础协议.参数接受.servlet.filter.cookie.多文件上传等.支持NIO. 一款轻量化Http服务器.支持bio.nio两种模式.归属Coody ...
- Git-commit与回滚
# 提交-信息 git commit -m "message" git commit -a -m "message" // 等同于 git add . & ...
- inotify+rsync实时同步备份nfs
学习教程总结: 1.主机1:172.16.1.41,安装rsync并运行rsync --daemon 配置好/etc/rsyncd.conf 和密码文件rscync.password并设置chomd ...
- deepin V20 简易入门指南
deepin V20 入坑指南 系统安装 入坑第一步自然是先安装系统了,deepin的安装方式很简单只需要一个U盘即可,在官网下载好安装镜像文件,使用官方的启动盘制作工具,开机时选择从U盘启动即可,安 ...
- [原题复现]强网杯 2019 WEB高明的黑客
简介 原题复现: 考察知识点:python代码编写能力... 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 简 ...
- JUC并发工具包之CyclicBarrier & CountDownLatch的异同
1.介绍 本文我们将比较一下CyclicBarrier和CountDownLatch并了解两者的相似与不同. 2.两者是什么 当谈到并发,将这两者概念化的去解释两者是做什么的,这其实是一件很有挑战的事 ...
- 牛客 2020.10.20 TG 前两题
T1 GCD 数学水题... 对于每个数,如果这个数有两个及以上的质因数的话,它所有除 \(1\) 之外的因数求 \(GCD\) 的值一定为 \(1\).那么判断是否是质数或质数的次方即可(质数除 \ ...
- K8ssandra——专为Kubernetes云原生数据而生
DataStax最近发布了K8ssandra--一个开源的.部署于Kubernetes上的Apache Cassandra全新发行版本.K8ssandra一站式集合了在Kubernetes上部署开源版 ...