Zoals vermeld in mijn commentaar, is het openen van een sys_refcursor voor een andere cursor niet toegestaan tot Oracle 11g. Aangezien u iets probeert te doen waarvoor het gebruik van sys_refcursor vereist is, zou eens de volgende manier kunnen zijn:
Maak een type
CREATE TYPE va IS TABLE OF NUMBER;
/
Blokkeren:
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;
/
Je zou hier zien dat ik uiteindelijk weer een SELECT
. gebruik statement voor ref_cursor
. Het is net alsof je de gebruikelijke manier niet wilt gebruiken, ik heb een alternatieve manier gebruikt.