DB2中循环日期跑数据
2015-08-25 21:45
447 查看
1.数据库版本:
2.具体实现方式:
3.总结:
a.DB2中可以直接判断退出循环,如果被oracle的for循环惯坏了,想到这一点不太容易。
b.直接标签loop循环,设置退出方式,简单实用。
2.具体实现方式:
CREATE OR REPLACE PROCEDURE DB2USER.RUN_PROCEDURE_BY_LOOP(IN begin_date VARCHAR(8),IN end_date VARCHAR(8)) /****************************************************************************** NAME: PURPOSE: REVISIONS: Ver Date Author Description --------- ---------- ------------ ------------------------------------ 1 20150825 ZEN 循环跑多天的数据 ******************************************************************************/ LANGUAGE SQL BEGIN DECLARE V_LOCATION VARCHAR(100); DECLARE V_START_TIME TIMESTAMP; DECLARE V_END_TIME TIMESTAMP; DECLARE V_SQLMSG VARCHAR(255); DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN GET DIAGNOSTICS EXCEPTION 1 V_SQLMSG = MESSAGE_TEXT; CALL DB2USER.PRO_LOG(TO_CHAR(V_START_TIME,'YYYYMMDD'),'RUN_PROCEDURE_BY_LOOP','循环跑多天的数据',V_START_TIME,current timestamp,'ERROR',V_LOCATION,V_SQLMSG); END; /*清空目标表*/ SET V_START_TIME = TO_DATE(begin_date,'YYYYMMDD'); SET V_END_TIME = TO_DATE(end_date,'YYYYMMDD'); SET V_LOCATION = '清空数据'; time_loop: LOOP INSERT INTO Temp_TEST VALUES(V_START_TIME,TO_CHAR(V_START_TIME,'YYYYMMDD')); --CALL DB2USER.PRO_S_CLM_PFM_DAY(TO_CHAR(V_START_TIME,'YYYYMMDD')); SET V_START_TIME = V_START_TIME + 1 day ; IF (V_START_TIME > V_END_TIME) THEN LEAVE time_loop; END IF; END LOOP time_loop; COMMIT; --CALL DB2USER.PRO_LOG(TO_CHAR(V_START_TIME,'YYYYMMDD'),'RUN_PROCEDURE_BY_LOOP','循环跑多天的数据',V_START_TIME,current timestamp,'SUCCESS','',''); END;
3.总结:
a.DB2中可以直接判断退出循环,如果被oracle的for循环惯坏了,想到这一点不太容易。
b.直接标签loop循环,设置退出方式,简单实用。
相关文章推荐
- ZOJ 2760 How Many Shortest Path (floyd+dinic)
- spring 引入外部配置文件
- JOS学习记录
- Android学习0825<七>(ListView和Adapter拓展)
- sina的php的面试题
- PHP实用小程序(五)
- iOS UITableView制作类似QQ好友列表视图
- GUI编程笔记(java)06:GUI窗体添加按钮并对按钮添加事件案例
- 保存画面为图片 当前MFC保存该程序为图片 c++ vc
- DFS深度优先搜索算法
- 有关ASP.NET中OnClientClick与OnClick的说明
- Android-简单刮刮乐实现
- BZOJ 2929 洞穴攀行
- 移动前端不得不了解的html5 head 头标签
- HDOJ 2068 RPG的错排(排列组合+错排)
- 一步一步mysql(四)之 触发器与存储过程
- 自定义Adapter、全选、反选、checkbox、
- 常用手势(敲击)(拖拽)(长按)(轻扫)(捏合)(选转)
- 洗牌
- UI_08 UINavigationController、界面通信