Een stored procedure en user-defined function (UDF) is een set van SQL en procedurele statements (declaraties, opdrachten, loops, flow-of-control etc.) die zijn opgeslagen op de database server en kunnen worden aangeroepen met behulp van de SQL interface.
Kort voorbeeld:
In PostgreSQL worden zowel stored procedures als door de gebruiker gedefinieerde functies aangemaakt met het CREATE FUNCTION statement. Er zijn verschillen tussen de notie van opgeslagen procedures en functies in databasesystemen:
Stored Procedure | Functie | |
Gebruik in een expressie | ||
Een waarde teruggeven | ||
Waarden teruggeven als OUT parameters | ||
Geeft een enkele resultaatverzameling | (als een tabelfunctie) | |
Geeft meerdere resultaatreeksen |
Dus in de meeste gevallen, is het doel van een opgeslagen procedure om:
-
Acties uit te voeren zonder enig resultaat terug te geven (INSERT, UPDATE operaties i.e.)
-
Een of meer scalaire waarden als OUT-parameters
-
Een of meer resultaatreeksen
Het doel van een door de gebruiker gedefinieerde functie is gewoonlijk de invoerparameters te verwerken en een nieuwe waarde terug te geven.
Rapportagetools
Veel rapportagetools (Crystal Reports, Reporting Services, BI-tools enz.) bieden u de mogelijkheid een query (SQL SELECT-instructie) of een opgeslagen procedure die een resultatenset teruggeeft, te specificeren om een gegevensverzameling voor een rapport te definiëren.
Opgeslagen procedures zijn zeer nuttig wanneer u complexe berekeningen moet uitvoeren voordat de gegevens voor een rapport beschikbaar zijn.