Như đã đề cập trong nhận xét của tôi, việc mở sys_refcursor cho một con trỏ khác không được phép cho đến khi Oracle 11g. Khi bạn đang cố gắng làm điều gì đó yêu cầu sử dụng sys_refcursor, một lần có thể như sau:
Tạo một loại
CREATE TYPE va IS TABLE OF NUMBER;
/
Chặn:
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;
/
Bạn sẽ thấy ở đây rằng cuối cùng tôi đang sử dụng lại một SELECT
câu lệnh cho ref_cursor
. Nó giống như nếu bạn không muốn sử dụng cách thông thường, tôi đã sử dụng một cách khác.