Como mencioné en mi comentario, no se permite abrir un sys_refcursor para otro cursor hasta Oracle 11g. Como está tratando de hacer algo que exige el uso de sys_refcursor, una forma podría ser la siguiente:
Crear un tipo
CREATE TYPE va IS TABLE OF NUMBER;
/
Bloque:
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;
/
Vería aquí que al final estoy usando de nuevo un SELECT
declaración para ref_cursor
. Es como si no quisieras usar la forma habitual, usé una forma alternativa.