我想在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
以上代码执行出错,请问如何解决?
我尝试用下面的方法,也没有解决:
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
请版主帮忙呀!!!
问题解决:
把两句的位置换下就行不,哈哈:
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