Come accennato nel mio commento, l'apertura di un sys_refcursor per un altro cursore non è consentita fino a Oracle 11g. Dato che stai cercando di fare qualcosa che richiede l'uso di sys_refcursor, una volta il modo potrebbe essere come di seguito:
Crea un tipo
CREATE TYPE va IS TABLE OF NUMBER;
/
Blocca:
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;
/
Vedresti qui che alla fine sto usando di nuovo un SELECT
istruzione per ref_cursor
. È come se non volessi usare il solito modo, ho usato un modo alternativo.