che*_*rit 3 oracle plsql cursor sys-refcursor
我正在使用oracle PL/SQL程序.我在另一个内部调用一个程序.我想将一个游标从嵌套过程返回到外部过程.这可能吗?它对程序有何不利影响?
以下是调用结构:
Proc1( data1 IN integer, cursor1 OUT SYS_REFCURSOR ) {
Proc2(data2 IN , cursor1 out) {
open cursor1 FOR
select * from table;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是调用具有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.
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我正在创建一个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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6779 次 |
| 最近记录: |