Както споменах в моя коментар, отварянето на sys_refcursor за друг курсор не е разрешено до Oracle 11g. Тъй като се опитвате да направите нещо, което изисква използването на sys_refcursor, веднъж начинът може да бъде като по-долу:
Създайте тип
CREATE TYPE va IS TABLE OF NUMBER;
/
Блокиране:
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;
/
Тук ще видите, че в края отново използвам SELECT
израз за ref_cursor
. Това е точно както ако не искате да използвате обичайния начин, аз използвах алтернативен начин.