Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle PRAGMA自治事务是什么意思?_Oracle_Plsql_Transactions - Fatal编程技术网

Oracle PRAGMA自治事务是什么意思?

Oracle PRAGMA自治事务是什么意思?,oracle,plsql,transactions,Oracle,Plsql,Transactions,我需要弄清楚布拉格自治事务。我在触发器中使用了重叠选择查询,在过程中使用了插入查询。如果我在一个文件中导入两条记录,则第二条记录与第一条记录相同,因此第二条记录应显示为重叠错误。现在执行触发器中的select查询,但使用pragma自治事务不会引发错误。AUTONMOUS\u事务是嵌套事务。它独立于调用事务执行DML。因此,在自治事务中发出的查询不会在外部事务中看到任何未提交的更改。这就是为什么您看不到错误消息:无效状态只存在于事务的未提交更改中 显然,您使用的是AUTONMOUS\u事务,以避

我需要弄清楚布拉格自治事务。我在触发器中使用了重叠选择查询,在过程中使用了插入查询。如果我在一个文件中导入两条记录,则第二条记录与第一条记录相同,因此第二条记录应显示为重叠错误。现在执行触发器中的select查询,但使用pragma自治事务不会引发错误。

AUTONMOUS\u事务是嵌套事务。它独立于调用事务执行DML。因此,在自治事务中发出的查询不会在外部事务中看到任何未提交的更改。这就是为什么您看不到错误消息:无效状态只存在于事务的未提交更改中

显然,您使用的是
AUTONMOUS\u事务
,以避免出现变异表错误。但是,更好的解决方案是使用复合DML触发器:对每一行使用
来存储数组中的更改,然后在
之后的
语句阶段验证它们是否重叠