DB2存储过程创建与使用
DB2在使用上和其它数据库有些不同,这里介绍一下DB2中如何创建存储过程,以及如何在报表中调用DB2的存储过程。
第一步创建数据表
在DB2中使用命令编辑器或者控制中心,创建一张表:
create table testdb2(id int,city char(20))
再向表中插入两条测试数据。
insert into test values(1,’34′),(3,’33′)
第二步创建存储过程
DB2创建存储过程比较麻烦,我在测试的时候在命令编辑器里面用sql始终都创建不成功,最后使用了命令行才成功。
开始->运行->db2cmd
db2 -td@
connect to dbName user userName using Password@//连接数据库
//创建存储过程
CREATE PROCEDURE db2Proc1()
DYNAMIC RESULT SETS 1
P1: BEGIN
DECLARE area_cursor CURSOR WITH RETURN
FOR SELECT id
FROM testdb2;
OPEN area_cursor;
END P1@
这样存储过程就创建好了,在DB2里面测试一下
—————————— 输入的命令 ——————————
call db2proc2(1);
——————————————————————————
call db2proc2(1)
结果集 1
————–
ID
———–
1
1 条记录已选择。
返回状态 = 0
第三步 创建存储过程数据集
打开设计器,新建一张空白报表,【配置】->【参数】-增加一个参数arg1 数据类型为数值型。
【配置】->【数据集】->【增加】-【存储过程】
在定义中输入:call db2Proc2(?)
这里需要注意当有一个输入参数一个游标时,输入参数要写在游标之前。存储过程表达式处只对应一个”?“。游标的表达式为@@result , 结果类型为游标,类型为输出参数。
在报表单元格中调用就直接写=ds1.select(id)
第四步 在单元格中调用存储过程
在单元格中调用存储过程的语法为:
=call (“{call db2Proc2 (?)}”,1)
然后预览报表:
在参数处输入1,预览结果为:
这样DB2存储过程的创建,和在报表中使用介绍完了。