En lagrad procedur och användardefinierad funktion (UDF) är en uppsättning SQL- och procedurella uttalanden (deklarationer, tilldelningar, slingor, kontrollflöden etc.) som lagras på databasservern och kan anropas med hjälp av SQL-gränssnittet.
Snabbt exempel:
I PostgreSQL skapas både lagrade procedurer och användardefinierade funktioner med CREATE FUNCTION-anvisningen. Det finns skillnader mellan begreppen lagrade procedurer och funktioner i databassystem:
Stored Procedure | Funktion | |
Användning i ett uttryck | ||
Återge ett värde | ||
Återge värden som OUT parametrar | ||
Återge en enda resultatuppsättning | (som en tabellfunktion) | |
Återge flera resultatmängder |
Så i de flesta fall, syftet med en lagrad procedur är att:
-
Utföra åtgärder utan att returnera något resultat (INSERT, UPDATE).e.)
-
Återge ett eller flera skalära värden som OUT-parametrar
-
Återge en eller flera resultatmängder
I vanliga fall är syftet med en användardefinierad funktion att bearbeta ingångsparametrarna och återge ett nytt värde.
Rapporteringsverktyg
Många rapporteringsverktyg (Crystal Reports, Reporting Services, BI-verktyg etc.) gör det möjligt att ange en fråga (SQL SELECT-anvisning) eller en lagrad procedur som returnerar en resultatmängd för att definiera en datamängd för en rapport.
Stored procedures är mycket användbara när du behöver utföra komplexa beräkningar innan data är tillgängliga för en rapport.