zoukankan      html  css  js  c++  java
  • DB2存储过程模版

    1、日志表
     
    create table joblog
    (
    jobfun varchar(50),      --存储过程的功能
    procname varchar(100),   --存储过程
    runtime varchar(50),     --运行时间
    currentuser varchar(50), --当前用户
    state varchar(4),        --状态
    ChangeRecordsNum integer --受影响行数
    )
    
    state代表:
    --Joblog stats =0  正在执行
    --Joblog stats =1  存储过程正常结束
    --Joblog stats =8  有其他过程正在执行,中断
    --Joblog stats =9  存储过程异常终止
    2、存储过程模板
    
    create PROCEDURE YY_Proc01 (IN FromDate integer)
    --Joblog stats =0  running
    --Joblog stats =1  Finish right
    --Joblog stats =8  Finish cause by another running
    --Joblog stats =9  Stop with exception
    LANGUAGE sql
    YY_Proc:begin
        declare  JobFun varChar(50) default 'Delete W02 CINACC';--
        declare ChangeRecordsNum integer default 0 ;
    
        declare flag integer default 0;--考虑作为返回参数
        declare SQLSTATE char(5);
        declare at_end integer default 0;
        declare not_found condition for SQLSTATE '02000';
    
       
        declare MyCur cursor for < ..select..>;
        /**********异常处理************/
        declare exit HANDLER FOR SQLEXCEPTION
        begin
            rollback;
            insert into joblog values(JobFun,'YY_Proc01',(select current timestamp from sysibm.sysdummy1),
                             (select user from sysibm.sysdummy1),'9',0);--执行遇到异常
            set flag=1;
            return flag;
        end;
    
        declare CONTINUE HANDLER FOR  not_found
        begin
              set at_end=1;
        end;
        /***************************/
        
        
        set flag = 0;
        --开始工作 insert into logs
        insert into joblog values(JobFun,'YY_Proc01',(select current timestamp from sysibm.sysdummy1),
                             (select user from sysibm.sysdummy1),'0',0); 
    
        OPEN  MyCur;
        set at_end=0;
        FETCH MyCur INTO ans;
        WHILE at_end=0 DO
            --your work
            SET at_end = 0;
            --循环受影响行
            Set ChangeRecordsNum = ChangeRecordsNum+1;
            FETCH MyCur INTO ans;
        END WHILE;
        CLOSE MyCur;
        --顺利执行完毕
        insert into joblog values(JobFun,'YY_Proc01',(select current timestamp from sysibm.sysdummy1),
                             (select user from sysibm.sysdummy1),'1',ChangeRecordsNum);
            commit;
        set flag=0;
        return flag;
    end YY_Proc
  • 相关阅读:
    MVC MVP MVVM
    RC4 对称加密
    ARM 寻址方式
    杂项记录 arm64 的一些特性
    无向图-笔记-代码
    iOS 自定义导航栏
    ios中设置UIButton圆角,添加边框
    iOS 中UICollectionView实现各种视觉效果
    UIScrollView中UITableView
    iOS 13 适配总结
  • 原文地址:https://www.cnblogs.com/qidian10/p/3046923.html
Copyright © 2011-2022 走看看