加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle Procedure模板

发布时间:2020-12-12 13:41:34 所属栏目:百科 来源:网络整理
导读: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 NUMB
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,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 存储过程名;
/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读