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存储过程的创建,和在报表中使用介绍完了。