Comme mentionné dans mon commentaire, l'ouverture d'un sys_refcursor pour un autre curseur n'est pas autorisée avant Oracle 11g. Comme vous essayez de faire quelque chose qui nécessite l'utilisation de sys_refcursor, une façon pourrait être comme ci-dessous :
Créer un type
CREATE TYPE va IS TABLE OF NUMBER;
/
Bloquer :
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;
/
Vous verriez ici qu'à la fin j'utilise à nouveau un SELECT
instruction pour ref_cursor
. C'est comme si vous ne vouliez pas utiliser la méthode habituelle, j'ai utilisé une méthode alternative.