Seperti disebutkan dalam komentar saya, membuka sys_refcursor untuk kursor lain tidak diperbolehkan hingga Oracle 11g. Saat Anda mencoba melakukan sesuatu yang menuntut penggunaan sys_refcursor, caranya bisa seperti di bawah ini:
Buat jenis
CREATE TYPE va IS TABLE OF NUMBER;
/
Blokir:
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;
/
Anda akan melihat di sini bahwa pada akhirnya saya menggunakan lagi SELECT
pernyataan untuk ref_cursor
. Kayaknya kalo gak mau pake cara biasa, gue pake cara alternatif.