不是很理解自主事务处理 pragma autonomous_transaction 的用途。

解决方案 »

  1.   

    自治事务(autonomous transaction)允许你创建一个“事务中的事务),它能独立于其父事务提交或回滚。利用自治事务,可以挂起当前执行的事务,开始一个新事务,完成一些工作,然后提交或回滚,所有这些都不影响当前执行事务的状态.一般不大需要用到。一种可能使用是用于定制审计。例如需要对每一个修改安全信息的企图进行审计,并记录他们试图修改的值呢。如果使用标准触发器,能检测到UPDATE,而且发现一个用户在修改他不该修改的数据,创建一个审计记录,并使UPDATE 失败,但是,触发器让UPDATE 失败时,它也会回滚审计记录。
    有了自治事务,就可以让UPDATE 失败同时,保留审计记录。