カーソルを宣言したパッケージがあります。そして、そのカーソルを PROCEDURE の OUT 変数として返したいと思います。load_data proc によって最初にデータをロードする必要があるため、そのカーソルからデータを取得することはできません。その MMM_CURSOR を使用したくないのは、同じ選択を使用する追加機能があるためです-DBレベルでのファイルへの書き込み。
create or replace PACKAGE BODY PCG_MMM AS
CURSOR MMM_CURSOR(OFFSET NUMBER) IS
SELECT TYPE, VALUE FROM MMM_TEMP_LOGS WHERE VALUE = OFFSET;
TYPE RET_TYPE IS REF CURSOR;
PROCEDURE LOAD_DATA AS
-- loading data into MMM_TEMP_LOGS--
END LOAD_DATA;
PROCDURE WRITE_TO_FILE AS
BEGIN
-- writing to file here --
END WRITE_TO_FILE;
PROCEDURE GET_DATA(DATA RET_TYPE, OFFSET NUMBER:=0) AS
BEGIN
LOAD_DATA;
DATA := MMM_CURSOR(OFFSET) ; <--- ??
END GET_DATA;
END PCG_MMM;