For at citere fra "Spørg Tom Oracle":
pipelinede funktioner er simpelthen "kode, du kan lade som om er en databasetabel"
pipelinede funktioner giver dig den (for mig fantastiske) evne til at
select * from PLSQL_FUNCTION;
hver gang du tror, du kan bruge det -- at vælge * fra en funktion, i stedet for en tabel, kan det være "nyttigt".
For så vidt angår fordele:En stor fordel ved at bruge en Pipeline-funktion er, at din funktion kan returnere rækker én efter én i modsætning til at bygge hele resultatsættet i hukommelsen som helhed, før det returneres.
Ovenstående giver den åbenlyse optimering - hukommelsesbesparelser fra noget, der ellers ville returnere stort resultatsæt.
Et ret interessant eksempel på brug af pipelinede funktioner er her
Hvad der ser ud til at være en god brug af dem er ETL (extract/transform/load) - se for eksempel her