Una stored procedure e user-defined function (UDF) è un insieme di istruzioni SQL e procedurali (dichiarazioni, assegnazioni, loop, flow-of-control etc.) che vengono memorizzate sul server del database e possono essere invocate usando l’interfaccia SQL.
Quick Example:
In PostgreSQL, sia le stored procedure che le funzioni definite dall’utente sono create con l’istruzione CREATE FUNCTION. Ci sono differenze tra la nozione di stored procedure e funzioni nei sistemi di database:
Stored Procedure | Funzione | |
Uso in un’espressione | ||
Restituisce un valore | ||
Restituisce valori come OUT | ||
Restituisce un singolo insieme di risultati | (come una funzione di tabella) | |
Restituisce più set di risultati |
Quindi nella maggior parte dei casi, lo scopo di una stored procedure è quello di:
-
Eseguire azioni senza restituire alcun risultato (operazioni INSERT, UPDATE cioè.e.)
-
Restituire uno o più valori scalari come parametri OUT
-
Restituire uno o più set di risultati
Solitamente lo scopo di una funzione definita dall’utente è di elaborare i parametri di input e restituire un nuovo valore.
Strumenti di reporting
Molti strumenti di reporting (Crystal Reports, Reporting Services, strumenti BI ecc.) permettono di specificare una query (istruzione SQL SELECT) o una stored procedure che restituisce un set di risultati per definire un set di dati per un report.
Le stored procedure sono molto utili quando è necessario eseguire calcoli complessi prima che i dati siano disponibili per un report.