• pragma autonomous_transaction 自治事务实例


    要点:

    1、声明

    declare pragma autonomous_transaction;

    2、结尾做事务提交commit。

    commit;
    create or replace trigger TRI_USRP_DET_SYNC after insert or update or delete on usrp_det
    for each row
    declare pragma autonomous_transaction;
    begin
       if Inserting then
         insert into huinan.usrp_det@huinanerp
         (USRP_USER, USRP_PROG, USRP_RUN, USRP_INSERT, USRP_MODIFY, USRP_DELETE, USRP_PRINT, USRP_EXPORT, USRP_PST, USRP_UNPST, USRP_CHK,
         USRP_UNCHK, USRP_WF_SUBMIT, USRP_WF_CANCEL, USRP_VIEW_COST, USRP_VIEW_OTHERS, USRP_MOD_OTHERS, USRP_DEL_OTHERS, USRP_DESIGN, USRP_NEGATIVE,
         USRP_PERM1, USRP_PERM2, USRP_PERM3, USRP_PERM4, USRP_PERM5, USRP_PERM6, USRP_CHAR1, USRP_CHAR2, USRP_CHAR3, USRP_CHAR4, USRP_CHAR5, USRP_CHAR6,
         USRP_QTY1, USRP_QTY2, USRP_CRT_BY, USRP_CRT_DATE, USRP_MOD_TIMES, USRP_MOD_BY, USRP_MOD_DATE, USRP_UPLOAD, USRP_VIEW, USRP_DOWNLOAD, USRP_VIEW_HIST)
         values
         (:new.USRP_USER, :new.USRP_PROG, :new.USRP_RUN, :new.USRP_INSERT, :new.USRP_MODIFY, :new.USRP_DELETE, :new.USRP_PRINT, :new.USRP_EXPORT, :new.USRP_PST, :new.USRP_UNPST, :new.USRP_CHK,
         :new.USRP_UNCHK, :new.USRP_WF_SUBMIT, :new.USRP_WF_CANCEL, :new.USRP_VIEW_COST, :new.USRP_VIEW_OTHERS, :new.USRP_MOD_OTHERS, :new.USRP_DEL_OTHERS, :new.USRP_DESIGN, :new.USRP_NEGATIVE,
         :new.USRP_PERM1, :new.USRP_PERM2, :new.USRP_PERM3, :new.USRP_PERM4, :new.USRP_PERM5, :new.USRP_PERM6, :new.USRP_CHAR1, :new.USRP_CHAR2, :new.USRP_CHAR3, :new.USRP_CHAR4, :new.USRP_CHAR5, :new.USRP_CHAR6,
         :new.USRP_QTY1, :new.USRP_QTY2, :new.USRP_CRT_BY, :new.USRP_CRT_DATE, :new.USRP_MOD_TIMES, :new.USRP_MOD_BY, :new.USRP_MOD_DATE, :new.USRP_UPLOAD, :new.USRP_VIEW, :new.USRP_DOWNLOAD, :new.USRP_VIEW_HIST);
       end if;
    
       if Deleting then
         delete from huinan.usrp_det@huinanerp where usrp_user = :old.usrp_user;
       end if;
    
       if Updating then
         update huinan.usrp_det@huinanerp set
                usrp_run         = :new.usrp_run,
                usrp_insert      = :new.usrp_insert,
                usrp_modify      = :new.usrp_modify,
                usrp_delete      = :new.usrp_delete,
                usrp_print       = :new.usrp_print,
                usrp_export      = :new.usrp_export,
                usrp_pst         = :new.usrp_pst,
                usrp_unpst       = :new.usrp_unpst,
                usrp_chk         = :new.usrp_chk,
                usrp_unchk       = :new.usrp_unchk,
                usrp_wf_submit   = :new.usrp_wf_submit,
                usrp_wf_cancel   = :new.usrp_wf_cancel,
                usrp_view_cost   = :new.usrp_view_cost,
                usrp_view_others = :new.usrp_view_others,
                usrp_mod_others  = :new.usrp_mod_others,
                usrp_del_others  = :new.usrp_del_others,
                usrp_design      = :new.usrp_design,
                usrp_negative    = :new.usrp_negative,
                usrp_perm1       = :new.usrp_perm1,
                usrp_perm2       = :new.usrp_perm2,
                usrp_perm3       = :new.usrp_perm3,
                usrp_perm4       = :new.usrp_perm4,
                usrp_perm5       = :new.usrp_perm5,
                usrp_perm6       = :new.usrp_perm6,
                usrp_char1       = :new.usrp_char1,
                usrp_char2       = :new.usrp_char2,
                usrp_char3       = :new.usrp_char3,
                usrp_char4       = :new.usrp_char4,
                usrp_char5       = :new.usrp_char5,
                usrp_char6       = :new.usrp_char6,
                usrp_qty1        = :new.usrp_qty1,
                usrp_qty2        = :new.usrp_qty2,
                usrp_mod_times   = usrp_mod_times + 1,
                usrp_mod_date    = sysdate,
                usrp_upload      = :new.usrp_upload,
                usrp_view        = :new.usrp_view,
                usrp_download    = :new.usrp_download,
                usrp_view_hist   = :new.usrp_view_hist
         where 1=1
         and usrp_user = :old.usrp_user
         and usrp_prog = :old.usrp_prog;
       end if;
       
       commit;
    end TRI_USRP_DET_SYNC;
    

      

  • 相关阅读:
    Linux五种IO模型
    怎样理解阻塞非阻塞与同步异步的区别?
    .NET 框架 (转载)
    数组 反转
    排序 归并排序&逆序对
    快速寻找满足条件的2个数
    数组 寻找最大的第k个数
    字符串 删除字符串开始以及末尾的空白符,并把数组中间的多个空格(如果有)符转换为1个
    排序 快速排序
    java8常用api
  • 原文地址:https://www.cnblogs.com/su1643/p/6567472.html
Copyright © 2020-2023  润新知