Вопрос не ясен, но, похоже, вам нужно что-то вроде этого
a) Определите тип объекта с помощью формы строки результата. B) Определите коллекцию этого типа объекта c.) Создайте функцию с типом возврата типа коллекции - это может принимать курсор A в качестве параметра (SYS_REFCURSOR), соединять каждую строку в курсоре A с таблицей B, а затем использовать PIPE ROW для каждой строки результата.d) Если конечный результат нужен в качестве курсора, тогда другая функция, аналогичная
FUNCTION complex_query(in_cursor SYS_REFCURSOR)
RETURN SYS_REFCURSOR
IS
lreturn SYS_REFCURSOR;
BEGIN
OPEN lreturn FOR
(SELECT * FROM TABLE(convert_to_collection(in_cursor)));
RETURN lreturn;
END;
В качестве альтернативы, вы можете просто выполнить SELECT * FROM TABLE (convert_to_collection (in_cursor)) напрямую.
Что я не понимаю, так это требование, чтобы все возвращалось в виде 1 строки.