За да цитирам от "Попитайте Том Оракул":
конвейерните функции са просто "код, за който можете да се преструвате, че е таблица на база данни"
конвейерните функции ви дават (удивително за мен) способността да
select * from PLSQL_FUNCTION;
всеки път, когато смятате, че можете да го използвате - за да изберете * от функция, вместо от таблица, може да е "полезно".
Що се отнася до предимствата:голямо предимство на използването на функция Pipeline е, че вашата функция може да връща редове един по един, за разлика от изграждането на целия набор от резултати в паметта като цяло, преди да го върне.
Горното дава очевидната оптимизация - спестяване на памет от нещо, което иначе би върнало голям набор от резултати.
Доста интересен пример за използване на конвейерни функции е тук
Това, което изглежда е добра употреба от тях, е ETL (извличане/трансформиране/зареждане) - например вижте тук