DB2存储过程一些技巧

1 循环
1.1 while
示例:
SET vCallTime = DATE('2011-05-01');
WHILE (vCallTime <= Date('2011-06-10')) do
-- PLSQL
SET vCallTime = vCallTime + 1 days;
END WHILE;
1.2 Loop
示例:
DECLARE AT_END INTEGER DEFAULT 1;

DECLARE CONTINUE HANDLER FOR NOT FOUND
BEGIN
SET AT_END=0;
END;

OPEN curInsuranceKind;
kindLoop:
LOOP
FETCH curInsuranceKind INTO vInsuranceClassName;
IF AT_END=0 THEN
LEAVE kindLoop;
END IF;
-- PLSQL
END LOOP;
2 时间
2.1 某月有多少天
例如,2011年2月份有多少天
SELECT DAYS('2011-03-01') - DAYS('2011-02-01') FROM sysibm.sysdummy1
2.2 今天是今年的第几天
SELECT DAYS('今天日期') - DAYS('2011-01-01') + 1 FROM sysibm.sysdummy1

3 获得执行命令影响的行数
示例:
DECLARE SEQ_COL INTEGER;
SELECT COUNT(1) INTO SEQ_COL
FROM FINAL TABLE(
UPDATE DB2ADMIN.DW_BIZ2006
SET PAIDNO_SQ = vPaidno,
PAIDLOSS_SQM = vPaidloss,
SUMOSNO_SQM = vSumossno,
SUMOSLOSS_SQM = vSumosloss,
POLICYCOUNT_SQM = vPolicycount,
PREMIUM_SQM = vPremium
WHERE DESKDATE = vCollectNextMonthYear AND
COMCODE = vComCode AND
KINDCODE = vKindCode);

注意
做除法时,除数和被除数都不能为零,要做判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值