zoukankan      html  css  js  c++  java
  • PRAGMA AUTONOMOUS_TRANSACTION自治事务应用

    PRAGMA AUTONOMOUS_TRANSACTION

    在你的一个事务(外层事务)中可以定义一个或几个自治事务。自治事务可以独立commit,不对外层事务产生影响,同样外层事务的 rollback 也对自治事务没有影响。

    通常可以考虑将自治事务定义成一个过程,在外层的事务中调用。即当前的存储过程作为已有事务的子事务运行,子事务的commit,rollback操作不影响父事务的状态

    应用于

    (1)匿名块

    (2)触发器

    (3)存储过程

     例子:

    PROCEDURE addrowautonomous(pid       IN tlog.id%TYPE,
                               pldate    IN tlog.ldate%TYPE,
                               plhsecs   IN tlog.lhsecs%TYPE,
                               pllevel   IN tlog.llevel%TYPE,
                               plsection IN tlog.lsection%TYPE,
                               pluser    IN tlog.luser%TYPE,
                               pltexte   IN tlog.ltexte%TYPE) IS
      PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
      addrow(pid       => pid,
             pldate    => pldate,
             plhsecs   => plhsecs,
             pllevel   => pllevel,
             plsection => plsection,
             pluser    => pluser,
             pltexte   => pltexte);
      COMMIT;
    EXCEPTION
      WHEN OTHERS THEN
        plog.error;
        ROLLBACK;
        RAISE;
    END;

    自治事务可以用于在客户化程序中记录调试信息

    PROCEDURE insert_cux_debug_info(  
        ........  
      ) IS PRAGMA AUTONOMOUS_TRANSACTION;  
        ........  
      BEGIN  
        INSERT INTO cux_debug_info VALUES ........;   
        COMMIT;  
      END;  
  • 相关阅读:
    004.Jquery库的用法
    update 死锁问题
    Nginx负载均衡模式
    微信公众号开启服务器配置 JAVA
    mybatis plus + AOP 多数据源自动切换
    mybatis plus 快速上手
    mybits 笔记
    java 异步
    node 垃圾回收机制
    常用正则
  • 原文地址:https://www.cnblogs.com/Cqiang/p/3026583.html
Copyright © 2011-2022 走看看