gpt4 book ai didi

oracle - 在 oracle pl/sql 中将游标从内部过程返回到外部过程

转载 作者:行者123 更新时间:2023-12-01 11:57:24 25 4
gpt4 key购买 nike

我正在使用 oracle PL/SQL 程序。
我在另一个过程中调用一个过程。我想将游标从嵌套过程返回到外部过程。
这可能吗?
它对程序有何不利影响?

下面是调用结构:

  Proc1( data1 IN integer, cursor1 OUT SYS_REFCURSOR ) {

Proc2(data2 IN , cursor1 out) {
open cursor1 FOR
select * from table;

}
}

最佳答案

下面是调用具有 REF CURSOR OUT 参数的过程的一个示例。

SQL> create or replace procedure p1(
2 p_empno in emp.empno%type,
3 p_rc out sys_refcursor
4 )
5 as
6 begin
7 open p_rc
8 for
9 select *
10 from emp
11 where empno = p_empno;
12 end;
13 /

Procedure created.

SQL> create or replace procedure p2(
2 p_empno in emp.empno%type,
3 p_rc out sys_refcursor
4 )
5 as
6 begin
7 p1( p_empno, p_rc );
8 end;
9 /

Procedure created.

在本例中,我创建了一个 SQL*Plus 替换变量 rc 以演示如何调用 p2。如果您使用 SQL*Plus 以外的其他方式调用它,则语法会有所不同,但一般原则是相同的。
SQL> var rc refcursor;
SQL> exec p2( 7900, :rc );

PL/SQL procedure successfully completed.

SQL> print rc

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO FAKE_COL FOO
---------- ---------- ----------
7900 SM2 CLERK 7698 03-DEC-81 950
30 1

关于oracle - 在 oracle pl/sql 中将游标从内部过程返回到外部过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4644613/

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