Per citare da "Chiedi a Tom Oracle":
le funzioni pipeline sono semplicemente "codice che puoi fingere sia una tabella di database"
le funzioni pipeline ti danno la (incredibile per me) capacità di
select * from PLSQL_FUNCTION;
ogni volta che pensi di poterlo usare -- per selezionare * da una funzione, invece di una tabella, potrebbe essere "utile".
Per quanto riguarda i vantaggi:un grande vantaggio dell'utilizzo di una funzione Pipeline è che la tua funzione può restituire le righe una per una invece di creare l'intero set di risultati in memoria nel suo insieme prima di restituirlo.
Quanto sopra fornisce l'ovvia ottimizzazione:risparmio di memoria da qualcosa che altrimenti restituirebbe un grande set di risultati.
Un esempio abbastanza interessante dell'utilizzo di funzioni pipeline è qui
Quello che sembra essere un buon uso è ETL (extract/transform/load) - per esempio vedi qui