zoukankan      html  css  js  c++  java
  • Oracle Procedure模板

    CREATE OR REPLACE PROCEDURE 存储过程名(hash_num in number, hash_value in number, -- hash值
                                          batch_num in NUMBER DEFAULT 5000, -- 一批处理数
                                          commitnum IN NUMBER DEFAULT 500, -- 一次提交数
                                          beginhour IN NUMBER DEFAULT 0, -- 开始时间
                                          endhour IN NUMBER DEFAULT 17 -- 结束时间
                                          ) AS 
      /*
      CREATE DATE:时间 
      CREATE BY:工号
      DESC : 存储过程功能描述
      */
    -- 提取数据
    CURSOR cursor_name IS SELECT t.*,ROWID FROM tt_telhis_src t WHERE nvl(t.deal_flg,0) = 0
    AND dbms_utility.get_hash_value(t.fulltel,0,hash_num) = hash_value AND rownum <= batch_num;
    -- 游标结构声明
    v_cursor cursor_name % ROWTYPE;
    -- 记录处理条数
    procnum NUMBER DEFAULT 0;
    BEGIN
      -- 不在时间段内,job空跑
      IF NOT (SYSDATE BETWEEN trunc(SYSDATE)+beginhour/24 AND trunc(SYSDATE) + endhour/24) THEN
        RETURN;
      END IF;
      FOR X IN v_cursor LOOP
        -- 业务逻辑
        
        -- 批次提交
        procnum := procnum + 1;
        IF MOD(procnum, commitnum) = 0 THEN
          COMMIT;
        END IF;
      END LOOP;
      COMMIT;
      -- 异常处理
    EXCEPTION
      WHEN OTHERS THEN
        ROLLBACK;
        -- 记录异常日志
        PKG_SYS_LOG.ERROR_LOG(NULL,
                              '存储过程名',
                              SYSDATE,
                              SQLCODE,
                              SQLERRM,
                              DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,
                              NULL);
    END 存储过程名;
    /
    

      

  • 相关阅读:
    JLOI2012:时间流逝
    bzoj 5217: [Lydsy2017省队十连测]航海舰队
    bzoj 4894: 天赋
    bzoj 4870: [Shoi2017]组合数问题
    bzoj 1558: [JSOI2009]等差数列
    bzoj 4945: [Noi2017]游戏
    bzoj 2142: 礼物
    bzoj 5248: [2018多省省队联测]一双木棋
    51nod2383
    codeforces24D
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/9928688.html
Copyright © 2011-2022 走看看