Om te citeren uit "Ask Tom Oracle":
pijplijnfuncties zijn gewoon "code waarvan u kunt doen alsof het een databasetabel is"
gepijplijnde functies geven je de (voor mij verbazingwekkende) mogelijkheid om
select * from PLSQL_FUNCTION;
elke keer dat je denkt dat je het kunt gebruiken -- om * uit een functie te selecteren, in plaats van een tabel, kan het "nuttig" zijn.
Wat de voordelen betreft:een groot voordeel van het gebruik van een Pipeline-functie is dat uw functie rijen één voor één kan retourneren, in plaats van de volledige resultatenset in het geheugen op te bouwen voordat deze wordt geretourneerd.
Het bovenstaande geeft de voor de hand liggende optimalisatie - geheugenbesparing van iets dat anders een grote resultatenset zou opleveren.
Een redelijk interessant voorbeeld van het gebruik van pijplijnfuncties is hier
Wat er een goed gebruik van lijkt te zijn, is ETL (extract/transform/load) - zie bijvoorbeeld hier