Uložená procedura a uživatelsky definovaná funkce (UDF) je sada příkazů SQL a procedurálních příkazů (deklarací, přiřazení, cyklů, řízení toku atd.), které jsou uloženy na databázovém serveru a lze je vyvolat pomocí rozhraní SQL.
Rychlý příklad:
V PostgreSQL se uložené procedury i uživatelsky definované funkce vytvářejí pomocí příkazu CREATE FUNCTION. Mezi pojetím uložených procedur a funkcí v databázových systémech existují rozdíly:
Uložená procedura | Funkce | |
Použití ve výrazu | ||
Vrátit hodnotu | ||
Vrátit hodnoty jako OUT parametry | ||
Vrátit jednu množinu výsledků | (jako např. tabulková funkce) | |
Vrátit více sad výsledků |
Takže ve většině případů, je účelem uložené procedury:
-
Provádět akce bez vrácení výsledku (operace INSERT, UPDATE i.e.)
-
Vrátit jednu nebo více skalárních hodnot jako OUT parametry
-
Vrátit jednu nebo více sad výsledků
Obvykle je účelem uživatelsky definované funkce zpracovat vstupní parametry a vrátit novou hodnotu.
Reportovací nástroje
Mnoho reportovacích nástrojů (Crystal Reports, Reporting Services, nástroje BI atd.) umožňuje zadat dotaz (příkaz SQL SELECT) nebo uloženou proceduru vracející množinu výsledků a definovat tak množinu dat pro report.
Uložené procedury jsou velmi užitečné v případě, že potřebujete provést složité výpočty dříve, než jsou data pro sestavu k dispozici.