读书人

db2带参数并返回查询结果集的存储过

发布时间: 2012-03-13 11:21:11 作者: rapoo

db2带参数,并返回查询结果集的存储过程

SQL code
需求:创建一个存储过程(db2 7.2 环境下),该存储过程需要一个输入参数 t_sql(来自程序的一条sql语句),然后在存储过程中动态创建一条查询的sql语句,执行该动态sql,返回结果错误代码如下:create procedure usp_GetDataAnalysis(in input_sql varchar(2000))language SQLbegin declare t_sql varchar(2000) set t_sql =input_sql;  exec t_sql     set t_sql = 'select AccountName'   select t_sql = t_sql + ',max(case ConditionName when ''' + ConditionName + ''' then [Money] else 0 end)[' +   ConditionName +']'  from (select distinct ConditionName from TempTable) t  select t_sql = t_sql + ' from TempTable group by AccountName'  exec t_sqlend







请大家帮忙修改下



[解决办法]
错误代码。。。错误呢?
我没有你的环境不知道会出什么错啊。
[解决办法]
是要用游标返回结果的话要在前面
DYNAMIC RESULT SETS 1
然后定义游标
DECLARE c_sql CURSOR WITH RETURN FOR t_sql;
set t_sql =input_sql;
open c_sql;
不关闭,然后可以在程序里获取RESULTSETS了
具体什么程序看你用的开发语言了
[解决办法]
你把
exec input_sql;
改成
EXECUTE IMMEDIATE input_sql;
试试

读书人网 >IBM DB2

热点推荐