web-dev-qa-db-ja.com

プロシージャの実行方法

ここにパッケージ..

CREATE OR REPLACE PACKAGE G_PKG_REFCUR AS
    TYPE rcDataCursor IS REF CURSOR;
END;

PROCを考えてみましょう。

Create procedure gokul_proc(
    pId in number,
    pName in varchar2,
    OutCur OUT G_PKG_REFCUR.rcDataCursor ) is
BEGIN
    Open OutCur For
        select * from gokul_table ob 
        where ob.active_staus-'Y' AND ob.id=pId AND ob.name=pNname;
END;

私の質問は次のとおりです。この手順を実行するにはどうすればよいですか?

OutCurパラメーターがない場合は、次のように実行できます。

EXEC gokul_proc(1,'GOKUL');

しかし、問題はOutCurです。ここでどの値を渡すのかわかりません。

例えば

EXEC gokul_proc(1,'GOKUL', ??????);

プロシージャの引数として渡す値を知る必要があるだけです。

12
Gokul

SQL Plusの場合:

VAR rc REFCURSOR
EXEC gokul_proc(1,'GOKUL', :rc);
print rc
21
Tony Andrews