Uživatelem definovaná funkce
Uživatelsky definovaná funkce, taktéž UDF (z anglického User-Defined Function), představuje funkci, kterou definuje sám uživatel programu nebo prostředí.
Programovací jazyky
Uživatelsky definované funkce se zpravidla používají při strukturovaném programování, kdy se při řešení úloh krom vestavěných funkcí používají i funkce uživatelsky definované. Použití shodné uživatelsky definované funkce je vesměs pomalejší, než použití shodné, vestavěné.
Databáze
V SQL databázích poskytují uživatelsky definované funkce způsob rozšíření, který může být volán a vyhodnocován přímo v SQL dotazech. SQL standard rozšiřuje mezi skalárními a tabulkovými funkcemi. Skalární funkce vrací pouze jedu hodnotu (nebo NULL) zatímco tabulková funkce vrací tabulku. Tabulka může mít dle charakteru funkce jeden či více sloupců a vracet žádný či více řádků výsledku.
Uživatelsky definované funkce se v SQL deklarují pomocí příkazu CREATE FUNCTION
. Například funkce pro výpočet druhé mocniny může vypadat takto:
CREATE FUNCTION dbo.Square(Base FLOAT) RETURNS FLOAT RETURN (Base * Base)
Takto definovanou funkci lze použít jako výraz v SQL dotazech a to v místech, kde se používá většina vestavěných funkcí včetně SELECT dotazů, kde je funkce vyhodnocována v každém řádku dotazu. Na příklad dotaz z tabulky hodnot
SELECT Value, Square(Value) as Square FROM Values
vrátí v jednom sloupci hodnotu a v druhém její druhou mocninu. V těle funkce lze použít konstrukcí jazyka PL/SQL.
Některé databáze (například Firebird) pomocí uživatelských funkcí zpřístupňují externí knihovny, napsané v běžných programovacích jazycích. V takovém případě vypadá deklarace následovně (příklad definice funkce ltrim z externí knihovny IB_UDF dodávané společně se serverem):
declare external function ltrim cstring(255) null returns cstring(255) free_it entry_point 'IB_UDF_ltrim' module_name 'ib_udf';
Takto definovaná funkce je zpravidla rychlejší, než uložená procedura se stejnou funkcionalitou.
Odkazy
Související články
- Podprogram
SQL | |
---|---|
příkazy jazyka SQL | |
klíčová slova pro dotazování | TOP • LIMIT • JOIN (FULL LEFT RIGHT INNER CROSS) ON • UNION • ORDER BY • WHERE • GROUP BY • WITH ROLLUP • HAVING |
objekty | TABLE • VIEW • INDEX • CONSTRAINT • TRANSACTION • TRIGGER |
ostatní pojmy | Relační databáze • Systém řízení báze dat • Primární klíč • Cizí klíč • Poddotaz • Uložená procedura • Uživatelem definovaná funkce • Partition • Agregační funkce • Referenční integrita |
Tento článek je příliš stručný nebo postrádá důležité informace. Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty. |