sql >> Databasteknik >  >> RDS >> Oracle

Databas:Pipelined-funktioner

För att citera från "Fråga Tom Oracle":

pipelinerade funktioner är helt enkelt "kod du kan låtsas vara en databastabell"

pipelined-funktioner ger dig den (för mig fantastiska) förmågan att

select * from PLSQL_FUNCTION;

när som helst du tror att du kan använda det -- att välja * från en funktion, istället för en tabell, kan det vara "användbart".

När det gäller fördelar:en stor fördel med att använda en Pipeline-funktion är att din funktion kan returnera rader en i taget i motsats till att bygga hela resultatuppsättningen i minnet som en helhet innan den returneras.

Ovanstående ger den uppenbara optimeringen - minnesbesparingar från något som annars skulle ge stora resultat.

Ett ganska intressant exempel på att använda pipeline-funktioner är här

Det som verkar vara en bra användning av dem är ETL (extract/transform/load) - se till exempel här




  1. PL/pgSQL kontrollerar om en rad finns

  2. Hur man deklarerar användardefinierat undantag med PRAGMA EXCEPTION_INIT

  3. Hur matar man ut resultatet av SELECT-satsen som exekveras med inbyggd dynamisk SQL?

  4. Hur UPPER() fungerar i MariaDB