oracle 游标内存自动释放,oracle - 如何将Oracle引用游标提取到表变量中? - 堆栈内存溢出...

我试图将参考光标中的数据加载到表变量(或数组)中,如果表变量基于现有的%Rowtype但参考游标通过连接多个表来加载,则参考游标可以工作,所以让我试着演示一个例子我想做什么,有些人可以帮助我

--created table

create table SAM_TEMP(

col1 number null,

col2 varchar(100) null

);

--created procedure which outputs results from that table

CREATE OR REPLACE

PROCEDURE SP_OUT_RefCur_PARAM(

C_RESULT OUT SYS_REFCURSOR

) IS

BEGIN

OPEN C_RESULT FOR

SELECT COL1,COL2

FROM SAM_TEMP;

END SP_OUT_RefCur_PARAM;

--seeing the output works like this

DECLARE

REFCUR SYS_REFCURSOR;

outtable SAM_TEMP%rowtype ;

BEGIN

SP_OUT_RefCur_PARAM(REFCUR);

LOOP

FETCH REFCUR INTO outtable;

EXIT WHEN REFCUR%NOTFOUND;

dbms_output.put_line(outtable.col1);

END LOOP;

CLOSE REFCUR;

END;

--but when i try to run below script it is giving error,i think i am missing something

DECLARE

REFCUR SYS_REFCURSOR;

TYPE REFTABLETYPE IS RECORD (COL1 NUMBER, COL2 VARCHAR(100));

TYPE TABLETYPE IS TABLE OF REFTABLETYPE;

outtable TABLETYPE;

BEGIN

SP_OUT_RefCur_PARAM(REFCUR);

LOOP

FETCH REFCUR INTO outtable;

EXIT WHEN REFCUR%NOTFOUND;

dbms_output.put_line(outtable.col1);

END LOOP;

CLOSE REFCUR;

END;

错误报告:

ORA-06550 line 9, column 21:

PLS-00597 expression 'OUTTABLE' in the INTO list is of wrong type

ORA-06550 line 9, column 3:

PL/SQL SQL Statement ignored

ORA-06550 line 11, column 32:

PLS-00302 component 'COL1' must be declared

不确定我错过了什么,在此先感谢您的帮助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值