存储过程学习记录-返回的cursor结果集如何在PLSQL中解析

create or replace procedure rxwl_proc_getdxjl
(
       sms_cur out sys_refcursor
)as
begin
       open sms_cur for
       select
            dxjsno,dxfsrq,dxfsnr,lxrydm,dxfsbz,dxfsjb
       from
            (select a.*  from dxt02 a  order by dxfsrq desc)
       where rownum<=100;
end;

 

这个过程很简单,只有一个返回的结果集 sms_cur

在JAVA中解析cursor是很简单的,但是

现在要在PLSQL中调用这个过程和解析游标

 

declare

//声明游标和每个字段变量
  sms_ref  sys_refcursor;
  dxjsno varchar2(1024);
  dxfsrq varchar2(1024);
  dxfsnr varchar2(1024);
  lxrydm varchar2(1024);
  dxfsbz varchar2(1024);
  dxfsjb varchar2(1024);
begin

//调用过程,,括号里的意思是sms_cur游标的结果集赋值给sms_ref
  rxwl_proc_getdxjl(sms_cur=>sms_ref);

//遍历输出
  loop
    fetch sms_ref into dxjsno,dxfsrq,dxfsnr,lxrydm,dxfsbz,dxfsjb;
  dbms_output.put_line(dxjsno||''||dxfsrq||''||dxfsnr||''||lxrydm||''||dxfsbz||''||dxfsjb);
 exit when sms_ref%notfound;
 end loop;
end;

 

还有个疑问就是调用的时候上边声明变量是否需要和过程返回字段的类型对应,我这里不对应也可以输出,

第一次写文章,不知道我表述清楚了没...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值