• DB2测试存储过程的原子性


    存储过程在运行过程中需要对其做异常处理、原子性等测试

    下面是一个原子性测试案例

    =====================================

    代码区域

    =====================================

    建表SQL:

    DROP TABLE DB2ADMIN.TB_1;
    
    CREATE TABLE DB2ADMIN.TB_1
        (
        ID   INTEGER,
        NAME VARCHAR (100)
        )
        IN USERSPACE1;
    DROP TABLE DB2ADMIN.TB_2;
    
    CREATE TABLE DB2ADMIN.TB_2
        (
        ID   INTEGER NOT NULL,
        NAME VARCHAR (100),
        PRIMARY KEY (ID)
        )
        IN USERSPACE1;

    存储过程

    CREATE PROCEDURE  TST_PRO(
    OUT P_OUT_FLAG VARCHAR(10)
    )
    
    SPECIFIC  TST_PRO
    LANGUAGE  SQL
    NOT DETERMINISTIC
    CALLED ON NULL INPUT
    EXTERNAL ACTION
    OLD SAVEPOINT LEVEL
    MODIFIES SQL DATA
    INHERIT SPECIAL REGISTERS
    
    P1:BEGIN 
    --======================声明异常 存储过程 返回0为成功  返回1为失败
        DECLARE SQL_CODE  INTEGER DEFAULT 0;
        DECLARE SQLSTATE  CHAR(5) DEFAULT '00000';
        DECLARE SQLCODE   INTEGER DEFAULT 0;
        DECLARE SQLMSG    VARCHAR(400) DEFAULT '';
        
        declare V_COUNT INTEGER ;
            
        DECLARE CONTINUE HANDLER FOR NOT FOUND, SQLEXCEPTION ,SQLWARNING
        BEGIN
         SET  SQL_CODE=SQLCODE;
           IF SQL_CODE=-803 THEN 
           SET P_OUT_FLAG=SQL_CODE;
           END IF;
        END;
        
        INSERT INTO tb_1 values(1,'插入');
        
        GET DIAGNOSTICS V_COUNT=ROW_COUNT;
        IF V_COUNT<1 THEN 
           ROLLBACK;
           SET p_OUT_FLAG='1';
           RETURN ;
         END IF;
         
        INSERT INTO tb_2 values(1,'插入1');
        
        IF SQL_CODE=0 OR SQL_CODE=100 THEN 
          SET P_OUT_FLAG= '0';
          ELSE SET P_OUT_FLAG=SQL_CODE;
          ROLLBACK;
        END IF;
    
    
    END P1;

    执行存储过程2次,查询2个表中的数据,如果表tb_1有2条数据,那么证明这个存储过程不具有原子性。 

  • 相关阅读:
    「考试总结」2020-12-01 入冬
    「考试总结」2020-11-30 低智
    2020-11-29 自闭瞎写
    「晚测反思」2020-11-26 点亮
    「晚测反思」2020-11-28 复盘
    「刷题笔记」二分图匹配
    「刷题笔记」AC自动机
    「刷题笔记」哈希,kmp,trie
    「刷题笔记」数学I
    「刷题笔记」DP优化-斜率优化
  • 原文地址:https://www.cnblogs.com/OliverQin/p/6144153.html
Copyright © 2020-2023  润新知