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 '';
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='';
RETURN ;
END IF; INSERT INTO tb_2 values(1,'插入1'); IF SQL_CODE=0 OR SQL_CODE=100 THEN
SET P_OUT_FLAG= '';
ELSE SET P_OUT_FLAG=SQL_CODE;
ROLLBACK;
END IF; END P1;
执行存储过程2次,查询2个表中的数据,如果表tb_1有2条数据,那么证明这个存储过程不具有原子性。
DB2测试存储过程的原子性的更多相关文章
- DB2(Procedure)存储过程遍历循环!
有时候一些复杂的业务逻辑将要通过存储过程的循环语句进行处理;以下列出2种DB2存储过程的循环语句,方便以后的查看并使用! 推荐第一种方式的使用,最大的优点就是比较直观;在需要操作很多字段的情况下,不需 ...
- 使用dbms_profiler包测试存储过程性能
原文地址 http://hi.baidu.com/edeed/blog/item/345401e9a8851d38b80e2db4.html dbms_profiler用来测试PL/SQL代码非常 ...
- DB2 创建存储过程保存:XX 后面找到异常标记 "END-OF-STATEMENT"。
存储过程最后一行加结束符@: 然后执行:db2 -td@ -vf /home/WGJ/proc_data_calculate.sql [slsadmin@localhost /]$ db2 -td@ ...
- 利用SQLServer查询分析器获取存储过程的返回值,检查测试存储过程
1.存储过程没有返回值的情况(即存储过程语句中没有return之类的语句)用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况(1)如果通过查询分析器 ...
- DB2使用存储过程插入数据
要求:插入一张表(TESTMV)中三个字段(ID, GROUPID[组id], USERID[用户id]),为了产生多个组,每个组多个人的数据,进行统计每个组多少人数据用 代码如下: delete t ...
- 《软件测试自动化之道》读书笔记 之 SQL 存储过程测试
<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序 创建测试用例以及测试结果存储 执行T-SQL脚本 使用BCP工具导入测试用例数据 ...
- 测试第一个Oracle存储过程
存储过程语句 //简单存储过程的例子 //每调用一次打印一次hello world create or replace procedure sayhelloworld as begin dbms_ou ...
- db2 -- 存储过程01
接下来项目在技能可能偏向数据库方面,补习下. 学习写第一个db2在存储过程,记录下. ---- stored procedures code CREATE OR REPLACE PROCEDURE & ...
- DB2常用命令
DB2安装启动服务中启动不了,可用command启动并查看windows系统的日志.1.启动数据库 db2start2.停止数据库 db2stop3.连接数据库运行 db2命令之前要先运行db2c ...
随机推荐
- [Java] 我的Coding Style 总结
1. 缩进 采用4个空格的缩进方式 2. tab 不采用"hard" tab. 需要更改编辑器的默认配置.将tab值改成4个空格. 3. 换行 3.1 一行不超过75个字符 3.2 ...
- 慕课网-安卓工程师初养成-3-4 Java中的比较运算符
来源:http://www.imooc.com/code/1299 比较运算符用于判断两个数据的大小,例如:大于.等于.不等于.比较的结果是一个布尔值( true 或 false ). Java 中常 ...
- MSP430F149学习之路——PWM信号
代码一: /******************************* 程序功能:ACLK=32768Hz PWM波 T=512/32768 占空比75% ******************** ...
- Could not find action or result
[WARN ] 2013-11-21 14:08:16 :Could not find action or resultThere is no Action mapped for namespace ...
- cocos2dx 内存管理机制
持续更新吧. 刚开始看了一些. 一,CCObject 提供引用计数 1,unsinged int m_uReference; //此为CCOBject的引用计数,初始化为 1: new CCObje ...
- Edit 方法
1. 在FORM 的grid里面作为记录选择字段 AX 的edit 方法可以很方便地给用户提供记录选择功能,而不用在TABLE上添加新字段. 通常结合map使用,一般edit 方法格式: edit N ...
- VS2010调试生成的文件
调试时IntelliTrace打开了,关闭IntelliTrace就可以了, Win7的话在C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebug ...
- 【Uploadify】远程上传图片到【七牛云存储】
1.下载Uploadify版本3.2.1 2.下载七牛SDK 解压后将 qiniu 文件夹copy到uploadify文件夹下 3.修改uploadify.php文件 <?php $verify ...
- 较好的IOS新闻客户端应用源码
兼容性较好的新闻客户端应用源码,这个是一款国外新闻客户端源码,并且这款应用兼容性非常好的,可以很好地兼容iPhone和iPad的使用,而且应用的功能很多,新闻列表,上啦下拉刷新效果,评论列表,在线评论 ...
- Java SE技术概览 - Jave SE Platform at a Glance
从学习到工作,使用Java有几年时间,一直没有好好端详一下她的“内涵”.无意中看到一个关于Java SE的概览图,发现Java中提供的API还挺系统全面,把她放到博客中,相信对于想系统了解Java技术 ...