Java获取用游标_如何遍历具有引用游标的游标

我有以下PL / SQl过程(下面的代码),这个过程从Cursor调用一个PL / SQL函数 . 但是,此函数的返回类型是SYS_REFCURSOR

我的目标是遍历游标并将记录插入表中 . 简单 .

首先是功能:

FUNCTION DOB_DIFF (JOB1 NUMBER, JOB2 NUMBER, CASE_NUMBER NUMBER DEFAULT 0)

RETURN SYS_REFCURSOR IS

XDO_CURSOR SYS_REFCURSOR;

BEGIN

OPEN XDO_CURSOR FOR

'SELECT A.X,

A.Y,

''BNFCRY'' AS TYPE,

B.Z AS DOB

FROM TABLE1 B, TABLE A

WHERE B.X = A.X

AND B.Y = A.Y';

RETURN XDO_CURSOR;

END DOB_DIFF;

这是程序&到目前为止我所拥有的:

create or replace PROCEDURE CALL_FUNC1 (USER_ID IN VARCHAR2, JOB_NR1 IN NUMBER, JOB_NR2 IN NUMBER, CASE_NUM NUMBER DEFAULT 0) AS

CURSOR DOB_DIFF IS

SELECT PKG_PACKAGE1.DOB_DIFF (JOB_NR1, JOB_NR2, CASE_NUM) FROM DUAL;

BEGIN

FOR I IN DOB_DIFF LOOP

INSERT INTO IPVOWN.PRT_BEN_DOB_DIFF (X, Y, TYPE, DOB)

VALUES (I.X, I.Y, I.TYPE, I.DOB);

END LOOP;

COMMIT;

END CALL_FUNC1;

我得到以下错误,我做错了什么?看起来我无法遍历游标,因为函数的返回值是SYS_REFCURSOR,这是一个列表 . 如果是这种情况,那么我如何循环游标中的列表?

Error(61,2): PLS-00989: Cursor Variable in record, object, or collection is not supported by this release

提前致谢 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值