アプリケーションがOracleストアドプロシージャからOracle.netプロバイダーに情報を渡す標準的な方法は、outrefカーソルパラメータを使用することです。
以前は、すべてのストアドプロシージャがパッケージに含まれており、次のようなものがありました。
CREATE OR REPLACE PACKAGE test_package IS
TYPE refcur IS REF CURSOR;
PROCEDURE get_info ( o_cursor OUT refcur );
END test_package;
/
CREATE OR REPLACE PACKAGE BODY test_package IS
PROCEDURE get_info ( o_cursor OUT refcur ) AS
BEGIN
OPEN o_cursor FOR
SELECT * FROM v$database;
END get_info;
END test_package;
/
ここで、そのget_infoプロシージャをパッケージから通常のプロシージャに移動したいのですが、refcurタイプを取得するために何をすべきかわかりません。パッケージスコープ外で作成するにはどうすればよいですか?
CREATE OR REPLACE TYPE refcur is REF CURSOR;
動作しません。