gpt4 book ai didi

oracle - 从 Oracle 函数返回一个引用游标

转载 作者:行者123 更新时间:2023-12-05 01:47:29 25 4
gpt4 key购买 nike

我收到错误 - PLS-00382 表达式类型错误。
我想将引用光标作为输出。请让我知道我该怎么做

create or replace function  test_cur
return sys_refcursor
as
var_ref sys_refcursor;
begin
open var_ref for
select item,status
from item_master
where rownum <10;
return var_ref;
end;


declare
l_var sys_refcursor;
l_item varchar2(100);
l_status varchar2(10);
begin
l_var:=test_cur;
open l_var;
loop
fetch l_var into l_item,l_status;
exit when l_var%notfound;
dbms_output.put_line(l_item||','||l_status);
end loop;
end;

谁能帮我解决这个问题?

最佳答案

几个错误,看看我的工作示例,只是更改了源表:

CREATE OR REPLACE FUNCTION  TEST_CUR RETURN SYS_REFCURSOR
AS
VAR_REF SYS_REFCURSOR;
BEGIN
OPEN VAR_REF FOR
SELECT *
FROM DUAL;

RETURN VAR_REF;
END;

这里不用打开游标,它已经打开了。

DECLARE
L_VAR SYS_REFCURSOR;
L_STATUS VARCHAR2(10);
BEGIN
L_VAR:=TEST_CUR;
LOOP
FETCH L_VAR INTO L_STATUS;
EXIT WHEN L_VAR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE( L_STATUS );
END LOOP;
CLOSE L_VAR;
END;

一篇非常有趣的文章展示了如何测试 oracle 游标:

5 different ways to test Oracle Ref Cursor results

关于oracle - 从 Oracle 函数返回一个引用游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25891044/

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