Stored procedures 如何借助out参数或局部变量从db2存储过程中获取resultset

Stored procedures 如何借助out参数或局部变量从db2存储过程中获取resultset,stored-procedures,db2,cognos,Stored Procedures,Db2,Cognos,我编写了一个存储过程,如下所示: create procedure return_dates (in date_range_string char(50), in report_id integer ) language sql dynamic result sets 2 begin DECLARE paid_strt_dt varchar(250); DECLARE paid_end_dt varchar(250); DECLARE c1 CURSOR WITH RETURN FOR s1;

我编写了一个存储过程,如下所示:

create procedure return_dates
(in date_range_string char(50),
in report_id integer
)
language sql
dynamic result sets 2

begin
DECLARE paid_strt_dt varchar(250);
DECLARE paid_end_dt varchar(250);
DECLARE c1 CURSOR WITH RETURN FOR s1;
DECLARE c2 CURSOR WITH RETURN FOR s2;

if date_range_string='prior month' then
    set paid_strt_dt = 'select (current date - 1 month) + 1 days - day(current date - 1 month) days from sysibm.sysdummy1';
    set paid_end_dt = 'select current date - day(current date) days from sysibm.sysdummy1';
end if;

PREPARE s1 FROM paid_strt_dt;
OPEN c1;

PREPARE s2 FROM paid_end_dt;
OPEN c2;
end

我得到一个错误,它说我的prepare语句包含空字符串。我试图在cognos framework manager中将此存储过程作为查询主题导入,在验证查询时出现此错误。使用cognos framework manager从db2存储过程中获取结果集的最佳方法是什么?db2存储过程可以从上述代码中返回paid_strt_dt和paid_end_dt。

我从未将db2存储过程用于cognos,但我可以告诉您,cognos只能访问一个结果集。在framework manager中,您设置了参数吗?谢谢!你是对的,CognosFM只能获取结果集。所以我在DB2过程中使用了游标。