цикл внутри оракула курсора
Я создал ТИП
TYPE t_array IS TABLE OF VARCHAR2(15);
Функция, которая принимает строку, которая содержит «,» в качестве разделителя, и функция возвращает t_array, который в основном разделяет строку и возвращает список значений.
FUNCTION split_string(id IN VARCHAR2)
...
...
....
RETURN t_array;
END split_string;
Теперь моя хранимая процедура принимает в качестве входных данных длинную строку, вызывает функцию для разделения строки, проходит через t_array и возвращает CURSOR.
PROCEDURE p_get_xxx(p_id IN VARCHAR2,
p_cur_result OUT SYSREFCURSOR)
AS
l_array schema_name.t_array;
BEGIN
l_array := split_string(p_id);
OPEN p_cur_result FOR
FOR i IN l_array.first .. l_array.last
LOOP
SELECT * FROM ........
WHERE ID = l_array(i);
END LOOP;
END p_get_xxx;
Я получаю ошибку компиляции в соответствии с:
Неожиданное «ЗА» вместо «(»
Есть ли лучший способ справиться с этим сценарием или я что-то здесь упускаю?