|
Řídící příkazy | Jazyk SQL a jeho implementace | Triggery |
Procedury a funkce uložené na serveru (označované souhrnně jako rutiny) zjednodušují tvorbu databázových aplikací a urychlují jejich běh. Klientská aplikace využívající uložených rutin pouze volá hotové rutiny (přitom jim předává vstupní parametry a přebírá výstupní), místo aby posílala serveru zvláštní požadavek na provedení každého příkazu obsaženého v rutinách.
Je-li definice rutiny syntakticky špatně, dojde již při překladu ke kompilační chybě.
Proceduru lze provést tak, že se zavolá pomocí SQL příkazu CALL.
Funkce se provede, vyskytne-li se její volání jako součást výrazu. Během provádění funkce musí být v jejím těle proveden příkaz RETURN. Pokud proveden není, nastane chybový sqlstate 2F001 (SQ_NO_RETURN_IN_FNC).
Rutinu lze vytvořit, modifikovat a zrušit:
V obou prostředích se rutina definuje pomocí jazyka pro psaní rutin a triggerů z SQL 3. Ve vývojovém prostředí 602SQL začíná text editované rutiny slovem PROCEDURE nebo FUNCTION, slovo CREATE nebo ALTER se neuvádí.
Rozšíření jazyka SQL proti normě
Podrobnosti o uložených rutinách lze najít na následujících stránkách:
Pro účely ladění může být také výhodné trasovat volání SQL procedur (situace TRACE_PROCEDURE_CALL
).
Příklad použití funkce jakožto integritního omezení v tabulce:
V tabulce je sloupec RETEZEC a klauzule CHECK (KONTROLA(RETEZEC)))
.
V téže aplikaci je rutina KONTROLA, která kontroluje, je-li předaný řetězec delší než 8 znaků, jestliže ne, vrátí funkce FALSE a integritní omezení není splněno:
FUNCTION `KONTROLA`(IN str CHAR(12)) RETURNS BOOLEAN;
BEGIN
DECLARE pom BOOLEAN DEFAULT FALSE;
IF CHAR_LENGTH(str)>8 THEN
SET pom=TRUE;
END IF;
RETURN pom;
END
Seznam subsekcí:
Řídící příkazy | Jazyk SQL a jeho implementace | Triggery |