Цитируя слово «Спроси у Тома Оракула»:
конвейерные функции - это просто «код, который вы можете представить как таблицу базы данных»
конвейерные функции дают вам (удивительно для меня)) способность
select * from PLSQL_FUNCTION;
каждый раз, когда вы думаете, что можете использовать ее - для выбора * из функции вместо таблицы это может быть «полезно».
Что касается преимуществ: большое преимущество использования функции конвейера заключается в том, что ваша функция может возвращать строки одну за другой, а не строить весь набор результатов в памяти в целом перед его возвратом.
Выше приведена очевидная оптимизация - экономия памяти за счет чего-то, что в противном случае возвратило бы большой набор результатов.
Довольно интересный пример с использованием конвейерных функций приведен здесь
То, что кажется хорошим использованием их, является ETL (извлечение / преобразование / загрузка) - , например, см. Здесь