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 存储过程名; / (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |