db2 函数、存储过程示例

1、函数

--drop function getMaxDate; 
create FUNCTION getMaxDate (y int, m int )
returns date
begin
     DECLARE maxDate date ;
     select max(dateid ) into maxDate from d_time where years = y and months = m;
     return maxDate;
end;

values getMaxDate(2013 ,3);

2、存储过程

--drop procedure test ; 

CREATE  PROCEDURE TEST 
( IN BEGINDATE DATE , 
  IN ENDDATE DATE , 
  OUT NUM int 
) 
begin
  declare currDate date ; -- 
  declare cy int ; 
  declare cm int ; 
  
  DECLARE  at_end    INT  DEFAULT  0 ; -- 
  DECLARE  not_found    CONDITION  FOR  SQLSTATE  '02000' ; -- 
  

  declare C1 cursor for
    select dateid , years ,months from d_time where dateid >beginDate and dateid <=endDate + 1  days order by dateid ; -- 
  DECLARE  CONTINUE  HANDLER  FOR  not_found    
    SET  at_end    =  1 ; -- 
      set num = 0 ; 
        open C1 ; -- 
        fetch  C1 into currDate ,cy ,cm ; -- 
                    
        WHILE  at_end = 0   DO 

          SET at_end =0 ; -- 
          fetch  C1 into currDate ,cy ,cm ; -- 


              insert into test (dateid ,y , m ) values ( currDate ,cy ,cm ); 
   
              set num = num + 1 ;


        END  WHILE ;   -- 
      CLOSE  C1 ;   -- 
END ; 

call test (date '2014-01-01' ,date '2014-02-23' , ?);

转载于:https://www.cnblogs.com/BlueBreeze/p/4242306.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值