这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了PRAGMA AUTONOMOUS_TRANSACTION。 PRAGMA AUTONOMOUS_TRANSACTION中文翻译过来叫“自治事务”(翻译的还算好理解),对于定义成自治事务的Procedure,实际上相当于一段独立运行的程序段,这段...
自治事务pragma autonomous_transaction的使用场景(2、触发器) 除了用于记录日志,自治事务pragmaautonomous_transaction另一个常用的使用场景是在触发器里。 下面是我在某个工作流系统中创建的触发器,目的是触发在申请人的流程被下一环节受理时、以及流程被退回时提取相关信息发送短信提醒。 此时,我在前台进行操作后,收到...
这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查不到刚刚插入的记录,最后发现这个Procedure的定义中加入了PRAGMA AUTONOMOUS_TRANSACTION。 PRAGMA AUTONOMOUS_TRANSACTION中文翻译过来叫“自治事务”(翻译的还算好理解),对于定义成自治事务的Procedure,实际上相当于一段独立运行的程序段,这段...
OracleOracle 一般情况下在触发器中是不能使用DDL语句的,使用自治事务可以实现 可以在触发器中加入: pragma autonomous_transaction; 表示自由事务处理。 CREATE OR REPLACE TRIGGER temp_ais AFTER insert ON atest for each row DECLARE pragma autonomous_transaction; BEGIN execute immediate 'DROP TABLE AAA'; end...
PRAGMAAUTONOMOUS_TRANSACTION; 在上一语句中,PRAGMA可以在 PL/SQL 块之间BEGINEND执行自治事务,而不会影响整个事务。 每当SSMA 尝试使用PRAGMA AUTONOMUS_TRANSACTION语句(即独立BEGIN ... END)转换 PL/SQL 块时,它就不支持PRAGMA块级别。 这是因为 SSMA 在 SQL Server 中找不到相应的对象。 但 SSMA 可以在例程...
一般情况下在触发器中是不能使用DDL语句的,使用自治事务可以实现 可以在触发器中加入: pragma autonomous_transaction; 表示自由事务处理。 CREATE OR REPLACE TRIGGER temp_ais AFTER insert ON atest for each row DECLARE pragma autonomous_transaction; BEGIN execute immediate 'DROP TABLE AAA'; end;...
... in 999 times out of 1000, if you find yourself "forced" to use an autonomous transaction - it likely means you have a serious data integrity issue you haven't thought about. Where do people try to use them? * in that trigger that calls a procedure that commits (not an error lo...
附加到emp表并将这些更改插入empauditlog表的触发器如下:您会看到,在声明部分中包含了PRAGMA AUTONOMOUS_TRANSACTION。 CREATEOR REPLACETRIGGERemp_audit_trigAFTERINSERTORUPDATEORDELETEONempDECLAREPRAGMA AUTONOMOUS_TRANSACTION; v_action VARCHAR2(20);BEGINIFINSERTINGTHENv_action :='Added employee(s)';ELSIFUPDATIN...
其中,autonomous_transaction是一种常用的pragma,它允许在事务中执行自主事务。这对于需要处理大量数据或需要独立于其他事务执行的操作非常有用。本文将介绍pragmaautonomous_transaction的用法,包括其定义、语法、示例以及注意事项。 一、定义和背景 pragmaautonomous_transaction用于在数据库中开启自主事务。自主事务是一种独立...
Oracle中的PRAGMA AUTONOMOUS_TRANSACTION详解 1. 解释什么是Oracle中的PRAGMA AUTONOMOUS_TRANSACTION Oracle中的PRAGMA AUTONOMOUS_TRANSACTION是一个编译器指令,用于将一个PL/SQL块或例程(如过程、函数)标记为自治事务。自治事务是一个独立于其调用者(父事务)的事务,它可以独立地提交或回滚自己的更改,而不会影响到父事...