如何从过程中显示REF_CURSOR输出参数-Oracle 12 C

a2mppw5e  于 2023-08-03  发布在  Oracle
关注(0)|答案(1)|浏览(108)

我在这里做错了什么,我试图在DBMS_OUTPUT中显示SYS_REFCURSOR输出值。下面是我目前为止代码,它给出了无效的游标异常。谁能帮帮我。

DECLARE
out_dcursor SYS_REFCURSOR;
snumber                     VARCHAR2(5);
   inumber                 VARCHAR2(15);

BEGIN

 my_proc(out_dcursor, 'INPUT_VALUE', NULL, NULL, NULL,NULL, NULL, NULL, NULL, NULL,'INPUT_VALUE2', NULL, NULL);
 
 loop
 fetch out_dcursor into snumber
           ,inumber;
 exit when out_dcursor%NOTFOUND;
 end loop;
 
END;

字符串

szqfcxe2

szqfcxe21#

你在抱怨dbms_outputinvalid cursor,但是-在你发布的代码中没有第一个术语,你也没有说哪个部分返回第二个术语。
这里的例子显示了一些 * 工作 *。看看你是否可以在你的代码中使用它,因为我们不知道my_proc是什么,接受,不返回。

SQL> create or replace procedure my_proc (par_rc out sys_refcursor) is
  2  begin
  3    open par_rc for select deptno, dname from dept;
  4  end;
  5  /

Procedure created.

SQL> set serveroutput on;
SQL> declare
  2    rc       sys_refcursor;
  3    l_deptno dept.deptno%type;
  4    l_dname  dept.dname%type;
  5  begin
  6    my_proc(rc);
  7    loop
  8      fetch rc into l_deptno, l_dname;
  9      exit when rc%notfound;
 10      dbms_output.put_Line(l_deptno ||' '|| l_dname);
 11    end loop;
 12  end;
 13  /
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS

PL/SQL procedure successfully completed.

SQL>

字符串

相关问题