У меня есть требование, в котором мне нужно передать несколько значений / нет значений из раскрывающегося списка на веб-странице в функцию sql, и на основе входного значения оно должно возвращать выходные данные (опять же рефкурсор).
Функциякод -
CREATE OR REPLACE FUNCTION KAG9802.GET_INJUREDPARTYTYPE
(name_in IN SYS_REFCURSOR)
RETURN SYS_REFCURSOR
IS
my_cursor SYS_REFCURSOR;
var1 varchar2(50);
BEGIN
LOOP
FETCH name_in INTO var1;
IF var1 = 'Near Miss' THEN
OPEN my_cursor
for SELECT 1 from dual;
ELSE
OPEN my_cursor
for select 2 from dual;
END IF ;
EXIT WHEN name_in%NOTFOUND;
end loop;
RETURN my_cursor;
close name_in;
END;
При выполнении функции следующим образом:
select * FROM TABLE ( GET_INJUREDPARTYTYPE(
CURSOR
(
select 'abcd' from dual
union
select 'efgh' from dual)
) );
Я получаю сообщение об ошибке
ORA-22905: не удается получить доступ к строкам изэлемент не вложенной таблицы
Также я не уверен, является ли это хорошим подходом для проверки входных значений из выпадающего списка. Пожалуйста, сообщите.