gpt4 book ai didi

oracle - 如何使用普通游标中的值打开 sys_refcursor?

转载 作者:行者123 更新时间:2023-12-02 19:08:41 25 4
gpt4 key购买 nike

我可以使用普通游标的值打开 sys_refcursor 吗?

create or replace procedure test(C1 out sys_refcursor)
Lv_c1 as
Select * from table;
Begin
Open C1 for select * from lv_c1;
End;

最佳答案

不,你不能。 “普通”游标是一个PL/SQL变量,因此不能在SQL查询中使用。

但是可以为游标变量的结果集打开游标:

create or replace package pack as 
cursor cur is
select rownum attr_1 from dual connect by level<=3;
type rset is table of cur%rowtype;
procedure getCursor (rc out sys_refcursor);
end;
/
create or replace package body pack as
procedure getCursor (rc out sys_refcursor) is
rs rset;
begin
open cur;
fetch cur bulk collect into rs;
close cur;
open rc for select * from table (rs);
end;
end;
/

执行和结果:

var rc refcursor
exec pack.getCursor (:rc)

ATTR_1
--------
row1
row2
row3

关于oracle - 如何使用普通游标中的值打开 sys_refcursor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64681723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com