Wie in meinem Kommentar erwähnt, ist das Öffnen eines sys_refcursor für einen anderen Cursor bis Oracle 11g nicht erlaubt. Wenn Sie versuchen, etwas zu tun, das die Verwendung von sys_refcursor erfordert, könnte ein Weg wie folgt aussehen:
Erstellen Sie einen Typ
CREATE TYPE va IS TABLE OF NUMBER;
/
Sperren:
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;
/
Sie würden hier sehen, dass ich am Ende wieder ein SELECT
verwende Anweisung für ref_cursor
. Es ist, als ob Sie nicht den üblichen Weg verwenden möchten, ich habe einen alternativen Weg gewählt.