首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

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

2013-01-06 
db2带参数,并返回查询结果集的存储过程需求:创建一个存储过程(db2 7.2 环境下),该存储过程需要一个输入参

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



需求:
创建一个存储过程(db2 7.2 环境下),该存储过程需要一个输入参数 t_sql(来自程序的一条sql语句),然后在存储过程中动态创建一条查询的sql语句,执行该动态sql,返回结果

错误代码如下:

create procedure usp_GetDataAnalysis(in input_sql varchar(2000))
language SQL
begin
 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_sql
end











请大家帮忙修改下


[解决办法]
错误代码。。。错误呢?
我没有你的环境不知道会出什么错啊。
[解决办法]
是要用游标返回结果的话要在前面
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;
试试

热点排行