DB2 存储过程调用存储过程时,如果将被调用的存储过程结果输出
有2个存储过程,A和B过程A输入参数后查询几个字段的数据过程B输入相同的参数先进行判断,判断通过后执行过程A,并要求返回过程A的结果听说可以将结果放入游标传入输出里,再在...
有2个存储过程,A 和 B
过程A 输入参数后查询几个字段的数据
过程B 输入相同的参数先进行判断,判断通过后执行过程A,并要求返回过程A的结果
听说可以将结果放入游标传入输出里,再在B里定义临时表,可是写了很多总是不对
下面是语句.请指教调用过程怎么写呢.需要输出被调用过程的结果集
建表
create table tx.emp (
id bigint,
name varchar(10),
job varchar(10),
level bigint);
插入数据
insert into tx.emp (1,aaaa,killer,5);
insert into tx.emp (2,aaaa,dick,3);
insert into tx.emp (3,aaaa,dick,3);
insert into tx.emp (4,aaaa,boss,1);
insert into tx.emp (5,aaaa,boy,2);
insert into tx.emp (6,aaaa,girl,4);
insert into tx.emp (7,aaaa,gay,2);
输入参数,查询数据
create procedure ts.out_pro(in_id_list varchar(999))
begin
DECLARE sql_stmt VARCHAR(999);
DECLARE c1 CURSOR WITH RETURN FOR s1;
set sql_stmt='select id,name,job,level from ts.emp where id in (*in_id_list*)';
set sql_stmt=replace(sql_stmt,'*in_id_list*',in_id_list);
prepare s1 from sql_stmt;
open c1;
end;
call tx.out_pro('1,4,3,7'); 展开
过程A 输入参数后查询几个字段的数据
过程B 输入相同的参数先进行判断,判断通过后执行过程A,并要求返回过程A的结果
听说可以将结果放入游标传入输出里,再在B里定义临时表,可是写了很多总是不对
下面是语句.请指教调用过程怎么写呢.需要输出被调用过程的结果集
建表
create table tx.emp (
id bigint,
name varchar(10),
job varchar(10),
level bigint);
插入数据
insert into tx.emp (1,aaaa,killer,5);
insert into tx.emp (2,aaaa,dick,3);
insert into tx.emp (3,aaaa,dick,3);
insert into tx.emp (4,aaaa,boss,1);
insert into tx.emp (5,aaaa,boy,2);
insert into tx.emp (6,aaaa,girl,4);
insert into tx.emp (7,aaaa,gay,2);
输入参数,查询数据
create procedure ts.out_pro(in_id_list varchar(999))
begin
DECLARE sql_stmt VARCHAR(999);
DECLARE c1 CURSOR WITH RETURN FOR s1;
set sql_stmt='select id,name,job,level from ts.emp where id in (*in_id_list*)';
set sql_stmt=replace(sql_stmt,'*in_id_list*',in_id_list);
prepare s1 from sql_stmt;
open c1;
end;
call tx.out_pro('1,4,3,7'); 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
2011-08-10
展开全部
用GOTO吧。。在一个过程里完成,不过效率很低
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询