En lagret procedure og brugerdefineret funktion (UDF) er et sæt SQL- og proceduremæssige instruktioner (deklarationer, tildelinger, sløjfer, flow-of-control osv.), der er gemt på databaseserveren og kan påkaldes ved hjælp af SQL-grænsefladen.
Snaeksempel:
I PostgreSQL oprettes både lagrede procedurer og brugerdefinerede funktioner med CREATE FUNCTION-anvisningen. Der er forskelle mellem begrebet lagrede procedurer og funktioner i databasesystemer:
Stored Procedure | Funktion | ||
Brug i et udtryk | |||
Returnerer en værdi | |||
Returnerer værdier som OUT parametre | |||
Returnerer et enkelt resultatsæt | (som en tabelfunktion) | ||
Returnerer flere resultatmængder |
Så i de fleste tilfælde, er formålet med en lagret procedure at:
-
Udføre handlinger uden at returnere noget resultat (INSERT, UPDATE-operationer i.e.)
-
Returnerer en eller flere skalarværdier som OUT-parametre
-
Returnerer et eller flere resultatsæt
Sædvanligvis er formålet med en brugerdefineret funktion at behandle de indgående parametre og returnere en ny værdi.
Rapporteringsværktøjer
Flere rapporteringsværktøjer (Crystal Reports, Reporting Services, BI-værktøjer osv.) giver dig mulighed for at angive en forespørgsel (SQL SELECT-anvisning) eller en lagret procedure, der returnerer et resultatsæt, for at definere et datasæt til en rapport.
Stored procedures er meget nyttige, når du har brug for at udføre komplekse beregninger, før dataene er tilgængelige for en rapport.