私のコメントで述べたように、別のカーソルのsys_refcursorを開くことは、Oracle11gまで許可されていません。 sys_refcursorの使用を要求する何かをしようとしているので、一度の方法は以下のようになります:
タイプを作成する
CREATE TYPE va IS TABLE OF NUMBER;
/
ブロック:
DECLARE
CURSOR c
IS
SELECT employee_id FROM employee;
rc SYS_REFCURSOR;
var va;
BEGIN
OPEN c;
FETCH c BULK COLLECT INTO var;
CLOSE c;
OPEN rc FOR SELECT COLUMN_VALUE FROM TABLE (var);
END;
/
ここで、最後に再びSELECT
を使用していることがわかります。 ref_cursor
のステートメント 。通常の方法を使用したくない場合と同じように、別の方法を使用しました。