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
  • 相关阅读:
    nginx 开启 gzip 压缩
    React Native 开发豆瓣评分(八)首页开发
    flutter报错--ProcessException: Process... gradlew.bat ...exited abnormally
    React Native 开发豆瓣评分(七)首页组件开发
    React Native 开发豆瓣评分(六)添加字体图标
    React Native 开发豆瓣评分(五)屏幕适配方案
    随笔
    MySQL的安装与配置
    mybatisXMLsql
    数据类型转换
  • 原文地址:https://www.cnblogs.com/qidian10/p/3046923.html
Copyright © 2011-2022 走看看