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;
还有个疑问就是调用的时候上边声明变量是否需要和过程返回字段的类型对应,我这里不对应也可以输出,
第一次写文章,不知道我表述清楚了没...