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;  
  • 相关阅读:
    SpringBoot打jar包以及打成war包 (springboot2.0)
    学习软件开发的心得
    SQA计划
    继续冲吧
    别跑了,看看脚下有木有money
    springIOC的那些事
    ssm
    scrum 第二次冲刺
    云医院
    团队项目开发总结
  • 原文地址:https://www.cnblogs.com/Cqiang/p/3026583.html
Copyright © 2011-2022 走看看