У меня есть функция, которая возвращает SYS_REFCURSOR, эта функция должна вызываться из разных пакетов, и нам не нужно дублировать определение курсора в нескольких местах.
FUNCTION f_get_cur(p_date DATE, p_code VARCHAR(10)) RETURN SYS_REFCURSOR IS
cur_s SYS_REFCURSOR;
BEGIN
OPEN cur_s FOR
SELECT .blah blah etc etc
return cur_s;
END f_get_cur;
Что компилируется нормально, однако, когда я хочу использовать функцию в цикле FOR, где я обычно помещаю курсор, я получаю следующую ошибку
Ошибка: PLS-00456: элемент 'f_get_cur' не является курсором
Я пытаюсь открыть курсор так ...
FOR cc_rec IN f_get_cur(c_date, p_c_code) LOOP
Я использую неправильный тип данных? Есть ли какой-то другой способ добиться того, что я пытаюсь?