相关推荐
-
ORA-06519 active autonomous transaction detected and rolled back
使用自治事务,返回前没有commit或rollback。
-
Oracle自治事务详解
在PLSQL中,例如下面func1调用func2的场景,如果正常无自治事务的场景,func1的insert1会被func2的commit提交掉, 即使func1最后有rollback,insert 1也提交了。 根因就是func2内部的事务控制语句,影响了外部调用者。 再看一下Oracle提供的自治事务功能,增加了`PRAGMA AUTONOMOUS_TRANSACTION;`语法后,func2的事务控制语句完全独立出来,和func1不在有任何关系。 即insert 1不会被func2的commit影响..
-
Oracle 方言 PL/SQL 编程、异常、自治事务(pragma autonomous_transaction)
目录 PL/sql 基本概念 PL/sql 变量 PL/sql 块中流程控制 PL/sql 查询数据 PL/sql 异常处理 PL/sql 基本概念 1、sql 是一种标准的数据库访问语言,但无法编程,PL/SQL 是 Oracle 公司开发的"方言",允许编程,是对 SQL 的一种补充。在存储过程、游标、触发器等等中都有用到 plsql。 2、PL/SQL 的主要目的是对数据库进......
-
Oracle 的 Autonomous_transaction( 自由性交易)
建立自由性交易, 使用名为autonomous_transaction的编译指示(编译命令,如, #include), 这个编译命令要放在declare里面. Delcare or replace procedure proce...
-
PRAGMA AUTONOMOUS_TRANSACTION自治事务应用
<br />PRAGMA AUTONOMOUS_TRANSACTION<br />当前的存储过程作为已有事务的子事务运行,子事务的commit,rollback操作不影响父事务的状态<br />可以用于<br />(1)匿名块<br />(2)触发器<br />(3)存储过程<br /> 例子:<br />procedure addRowAutonomous ( pID in TLOG.id%type, pLDate in TLOG.ldate%type, pL
-
Oracle中的自治事务(一)
♪ 事务 数据库事务是一种单元操作,要么是全部操作都成功,要么全部失败。在Oracle中,一个事务是从执行第一个数据管理语言(DML)语句开始,直到执行一个COMMIT语句,提交保存这个事务;或者执行一个ROLLBACK语句,放弃此次操作结束。 ♪ 自治事务的出现 1)事务的“要么全部完成,要么什么都没完成”的本性会使将错误信息记入数据库表中变得很困难,因
-
Oracle 嵌套事务与自治事务思考
关键字 嵌套事务和自治事务的概念 嵌套事务的使用 自治事务的使用 一. 概念 1. 嵌套事务(Nested Transaction): 指在一个Parent事务中嵌套的一个或多个Sub Transaction.并且主事务与其相互影响,这种事务就称为嵌套事务。以Commit作为事务的结束。 2. 自治事务(Autonomous Transaction): 指在func...
-
oracle自治事务的写法_PostgreSQL与Oracle兼容性之 plpgsql 自治事务补丁
PostgreSQL Oracle兼容性之plpgsql 自治事务(autonomous_transaction)补丁作者: digoal日期: 2016-11-16背景PostgreSQL的plpgsql服务端编程语言与Oracle数据库的pl/sql编程语言非常类似,但是对于自治事务一直没有语法层面的支持。以往如果要支持自治事务,可以使用exception或者使用dblink来实现。写法有点复...
-
人大金仓数据库KingbaseES自治事务介绍
包含自治事务的匿名块、存储过程和函数称之为自治程序。为便于说明,将调用自治程序的事务称之为主事务。自治事务是独立于主事务的事务,本质上也是事务。它以匿名块、存储过程和函数为载体,自治程序被执行时,它所包含的所有事务就称之为自治事务。
-
SQL Server 自治事务
何为自治事务(Autonomous Transaction)?简单的说,如果在会话中调用一个过程,则此过程会运行在此会话当前的事务作用域中;而自治事务可以让这个过程运行在一个独立的事务作用域中,使用其不受外部事务(也就是调用此过程的会话的当前事务)的影响,可以被独立的回滚/提交。为了方便理解,举个例子:use tempdbgoifobject_id('emps')isnotnull droptable emps;gocreatetable emps( id intidentity, names
-
数据库自治事务学习研究
openGauss在执行存储过程中通过分析函数DECLARE部分是否有。
-
自治事务pragma autonomous_transaction的使用场景
做了自治事务的声明后,不但函数中可以用DML语句,甚至可以使用DDL语句,比如CREATE TABLE ,CREATE INDEX等。场景:包体里的函数调用嵌套了两层的存过,存过中有DML,DDL语句,报错ORA-14552,ORA-06512等。第一层:ORA-14552: 在查询或 DML 中无法执行 DDL, 提交或回退。ORA-14552: 在查询或 DML 中无法执行 DDL, 提交或回退。ORA-14551: 无法在查询中执行 DML 操作。.........
-
oracle 触发器 pragma autonomous_transaction
一般情况下在触发器中是不能使用DDL语句的,使用自治事务可以实现 可以在触发器中加入: pragma autonomous_transaction; 表示自由事务处理。 CREATE OR REPLACE TRIGGER temp_ais AFTER insert ON atest for each row DECLARE pragma autonomous_transactio
-
【转】PRAGMA AUTONOMOUS_TRANSACTION oracle 自治事务
原文地址:http://blog.sina.com.cn/s/blog_4f925fc30100h8ld.html 数据库事务是一种单元操作,要么是全部操作都成功,要么全部失败。在Oracle中,一个事务是从执行第一个数据管理语言(DML)语句开始,直到执行一个COMMIT语句,提交保存这个事务,或者执行一个ROLLBACK语句,放弃此次操作结束。 事务的“要么全部完成,要么什么...
-
ORA-14551: cannot perform a DML operation inside a query
在执行一个有读写的函数调用的sql查询时,报错: ORA-14551: cannot perform a DML operation inside a query 如图: 经查, 对数据库有写操作(INSERT、UPDATE、DELETE、CREATE、ALTER、COMMIT)的函数,是无法简单的用SQL来调用的. 使用"自主事物",可以解决这个问题. 其实"自...
-
oracle 自治事务异常不回滚,ORA-06519: 检测到活动的自治事务处理,已经回退
有位朋友在使用自治事务触发器调用远程的存储过程出现错误ORA-06519一、ORA-06519错误出现我往数据库中一个表中写数据,这个表中对insert做了一个自治事务触发器后台报错, ORA-06519: 检测到活动的自治事务处理,已经回退请问一下,这个自治触发器应该如何处理才能避免这种问题二、错误解释[oracle@CCN-BJ-1-538 ~]$ oerr ora 651906519, 00...
-
关于oracle autonomous transaction
关于oracle autonomous transaction autonomous transaction 翻译成中文叫自治事务,多好的名字,一听名字就明白 大半的意思了。autonmous transaction 是一...
-
自治事务的介绍
在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题.,比如想在执行当前一个由多个DML组成的transaction(事务)时,为每一步DML记录一些信息到跟踪表中,由于事务的原子性,这些跟踪信息的提交将决定于...
-
自治事务pragma autonomous_transaction的使用场景(3、解决ORA-14551错误)
有时候,我们想在一个函数中做一些复杂的处理,比如更新一个临时表数据,然后做一些UPDATE处理,最后返回一个处理结果。想必大部分开发人员在初期都试过这样的操作,最终的结果是啥?PLSQL函数中不能做DML操作,报错ORA-14551: cannot perform a DML operation inside a query此后,我们可能转而用带out参数的存储过程来间接实现业务需求。其实,另一个...
-
mysql有自治事物吗_MySQL事务
事务特性原子性(atomicity)一致性(consistency)隔离性(isolation)持久性(durability)事务隔离级别READE UNCOMMITTED(未提交度)允许脏读,也就是可能读取到其他会话中未提交事务修改的数据READ COMMITTED(提交读)只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)REPEATABLE READE(可重复读)...
2 楼 weidewei 2010-09-02 23:51
1 楼 crazy24k 2010-08-26 09:01