请教db2存储过程的问题,在线等(高手请进)

[复制链接]
查看11 | 回复3 | 2007-3-30 14:11:00 | 显示全部楼层 |阅读模式
我想在DB2存储过程中动态执行sql语句,把一个表中idx值在param之间的查出并作为一个结果集返回.具体代码如下:
create procedure ST_QUERYTBL(in param varchar(16))
DYNAMIC RESULT SETS 1
READS SQL DATA
P1: begin
declare sSql varchar(1000) ;
set sSql = ' select * from TBL_REPORT_DICT_Month where idx in ( '|| param || ' )';
DECLARE curResult CURSOR WITH RETURN FOR sSql;
open curResult;
end P1
以上代码执行出错,请问如何解决?
回复

使用道具 举报

千问 | 2007-3-30 14:11:00 | 显示全部楼层
顶一下,等的不行不
回复

使用道具 举报

千问 | 2007-3-30 14:11:00 | 显示全部楼层
我尝试用下面的方法,也没有解决:
create procedure ST_QUERYTBL(in param varchar(16))
DYNAMIC RESULT SETS 1
READS SQL DATA
P1: begin
DECLARE curResult CURSORWITH RETURN FOR mystmt;
DECLARE str_sql VARCHAR(256);
SET str_sql = 'select * from TBL_REPORT_DICT_Month where idx in ( '|| param || ' )';
PREPARE mystmt FROM str_sql;
OPEN curResult;
end P1
请版主帮忙呀!!!
回复

使用道具 举报

千问 | 2007-3-30 14:11:00 | 显示全部楼层
问题解决:
把两句的位置换下就行不,哈哈:
create procedure ST_QUERYTBL(in param varchar(16))
DYNAMIC RESULT SETS 1
READS SQL DATA
P1: begin
DECLARE str_sql VARCHAR(256);
DECLARE curResult CURSORWITH RETURN FOR mystmt;
SET str_sql = 'select * from TBL_REPORT_DICT_Month where idx in ( '|| param || ' )';
PREPARE mystmt FROM str_sql;
OPEN curResult;
end P1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行