У меня есть функция, которая берет первичные ключи и разделяет их запятыми.
Oracle function:
create or replace function split(
list in CHAR,
delimiter in CHAR default ','
)
return split_tbl as
splitted split_tbl := split_tbl();
i pls_integer := 0;
list_ varchar2(32767) := list;
begin
loop
i := instr(list_, delimiter);
if i > 0 then
splitted.extend(1);
splitted(splitted.last) := substr(list_, 1, i - 1);
list_ := substr(list_, i + length(delimiter));
else
splitted.extend(1);
splitted(splitted.last) := list_;
return splitted;
end if;
end loop;
end;
, и у меня есть этот запрос на SQL Сервер, который возвращает данные этого запроса в таблице функций
select maxUserSalary.id as 'UserSalary'
into #usersalary
from dbo.Split(@usersalary,';') as userid
cross apply (
select top 1 * from User_Salaryas usersalary
where usersalary.User_Id= userid.item
order by usersalary.Date desc
) as maxUserSalary
Проблема в том, что я не могу использовать cross apply
в Oracle, чтобы выбросить эти данные в эту функцию, которая возвращает таблицу.
Как я могу использовать cross apply
с Oracle, чтобы вернуть эти данные в функцию?