Cytując z „Zapytaj Toma Oracle”:
Funkcje potokowe to po prostu "kod, który możesz udawać, że jest tabelą bazy danych"
funkcje potokowe dają (niesamowitą dla mnie) możliwość
select * from PLSQL_FUNCTION;
kiedykolwiek myślisz, że możesz go użyć -- aby wybrać * z funkcji, zamiast tabeli, może to być "przydatne".
Jeśli chodzi o zalety:dużą zaletą korzystania z funkcji potoku jest to, że funkcja może zwracać wiersze jeden po drugim, w przeciwieństwie do budowania całego zestawu wyników w pamięci jako całości przed jego zwróceniem.
Powyższe daje oczywistą optymalizację - oszczędność pamięci z czegoś, co w przeciwnym razie zwróciłoby duży zestaw wyników.
Dość interesujący przykład użycia funkcji potokowych znajduje się tutaj
Dobrym ich zastosowaniem wydaje się być ETL (wyciąg/transformacja/ładowanie) - na przykład zobacz tutaj