Oracle中的PRAGMA AUTONOMOUS_TRANSACTION详解 1. 解释什么是Oracle中的PRAGMA AUTONOMOUS_TRANSACTION Oracle中的PRAGMA AUTONOMOUS_TRANSACTION是一个编译器指令,用于将一个PL/SQL块或例程(如过程、函数)标记为自治事务。自治事务是一个独立于其调用者(父事务)的事务,它可以独立地提交或回滚自己的更改,而不会影响到父事...
这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了PRAGMA AUTONOMOUS_TRANSACTION。 PRAGMA AUTONOMOUS_TRANSACTION中文翻译过来叫“自治事务”(翻译的还算好理解),对于定义成自治事务的Procedure,实际上相当于一段独立运行的程序段,这段...
pragma autonomous_transaction;--自治事物begininsertintot_pragma_empvalues(1,'autonomous');commit;endpro_pragma_program; 3.3.匿名块调用 begininsertintot_pragma_empvalues(2,'plsqlblock'); pro_pragma_program;rollback;end; 3.4.显示结果 --只插入过程中提交的数据,plblock中的数据被rollback了,显然过程...
编译描述符PRAGMA AUTONOMOUS_TRANSACTION使得自治块在自己的事务里运行,所以内部的提交语句不会影响调用方的事务。 Autonomous transactions are commonly used by error logging routines, where the error messages must be preserved, regardless of the the commit/rollback status of the transaction. For example, ...
oracle 触发器 pragma autonomous_transaction Oracle 一般情况下在触发器中是不能使用DDL语句的,使用自治事务可以实现 可以在触发器中加入: pragma autonomous_transaction; 表示自由事务处理。 CREATE OR REPLACE TRIGGER temp_ais AFTER insert ON atest for each row...
被我们当前事务插入的2行数据被回滚了,而被自治事务插入的数据继续存在。编译描述符 PRAGMA AUTONOMOUS_TRANSACTION 使得自治块在自己的事务里运行,所以内部的提交语句不会影响调用方的事务。 Autonomous transactions are commonly used by error logging routines, where the error messages must be preserved, regardless...
语法 在语句声明部分 declare ,加⼊下列语句即可 pragma autonomous_transaction ; 1.1事务图⽰ 2⽰例:错误⽇志 基础数据准备: --创建学⽣信息表 create table scott .stu_info ( id number (10) constraint pk_sut_info_id primary key, name varchar2 (30), sex varchar2 (2) ); --创建⽇...
pragma AUTONOMOUS_TRANSACTION; begin ... 重新运行(注意打开serveroutput) local: # of rows is 0 -> 子程序local中无法可以’看到’主匿名块中的uncommitted记录 (因为它是独立的) main: # of rows is 2 -> 主匿名块可以’看到’2条记录,但只有一条是被commited. ...
PRAGMA AUTONOMOUS_TRANSACTION; 定义自治事务必须遵循以下规则: (1)如果要被定义为自治事务的程序是匿名的,那么它必须是一个最外层的程序块。 (2)如果要被定义为自治事务的程序不是匿名的,那么它必须是函数或者存储过程。在一个包中,只有其中的函数或存储过程能够定义成自治事务。整个包不能声明为自治事务。
被我们当前事务插入的2行数据被回滚了,而被自治事务插入的数据继续存在。编译描述符 PRAGMA AUTONOMOUS_TRANSACTION 使得自治块在自己的事务里运行,所以内部的提交语句不会影响调用方的事务。 Autonomous transactions are commonly used by error logging routines, where the error messages must be preserved, regardless...