存储过程3--参数游标

在一个存储过程A中调用有时候希望用到另一个存储过程B查询到的数据,首先得要求B得返回一个游标,然后A中调用B时,获取B返回的游标,并对该游标进行操作。
首先创建能返回游标的存储过程B
create or replace procedure AAA_ceshi(
var_curs out sys_refcursor—定义一个系统游标
) is
begin
open var_curs for select * from tl_cjda_kh;—打开游标并且赋值
end AAA_ceshi;
如上面所示就能让存储过程B返回一个游标,

而在A中要想获取到B的话,可以如下面的例子;
create or replace procedure AAA_ceshi_a is

a_cursor sys_refcursor;——也是定义一个系统游标
rs tl_cjda_kh%rowtype; ——获取从B存储过程中传过来的游标相同的数据类型
begin
AAA_ceshi(a_cursor);—将存储过程B中的游标返回到A中的a_cursor上,A和B中的游标类型得一致。
loop
fetch a_cursor into rs ;—-将游标的某一行的值赋给rs
exit when a_cursor%notfound;—–当没有找到数据时结束循环
dbms_output.putline(rs.name);

end loop;
end AAA_ceshi_a;

目前测试了一下,这种循环时可以的,但不知道for rs in a_cursor loop 这种循环为什么不行。边学习边记录,如有侵权,并非恶意。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值