|
![]() | Řídící příkazy | Přiřazovací příkaz SET | ![]() |
složený příkaz ::= [ návěští : ] BEGIN [ [ NOT ] ATOMIC ]
[ deklarace_proměnných … ]
[ deklarace_rutiny … ]
[ deklarace_výjimky … ]
[ deklarace_tabulky … ]
[ deklarace_kurzoru …]
[ deklarace_handleru …]
[ příkaz …]
END [ návěští ];
Složený příkaz (blok) je tvořen jedním nebo více SQL příkazů. Začíná klíčovým slovem BEGIN a končí slovem END. Ve složeném příkazu lze deklarovat lokální objekty (např. proměnné, rutiny, kurzory, tabulky), které budou existovat (pouze) po dobu provádění složeného příkazu a budou moci být využívány v příkazech obsažených ve složeném příkazu (včetně vnořených složených příkazů). Je-li uvnitř složeného příkazu volána procedura, lokální objekty v ní nejsou viditelné.
Při vstupu do složeného příkazu se vytvoří lokální proměnné. Poté se po řadě provedou v něm obsažené příkazy, leda že dojde k chybě nebo je proveden příkaz LEAVE. Při opuštění složeného příkazu se uzavřou všechny otevřené lokální kurzory, zaniknou proměnné a dočasné tabulky a zruší se body návratu vytvořené během jeho provádění.
ATOMIC označuje atomický složený příkaz, což znamená, že se provádí jako jeden celek a může být jako celek odvolán v případě chyby. Není-li uvedeno ATOMIC ani NOT ATOMIC, složený příkaz není atomický. V atomickém složeném příkazu nesmí být obsaženy ani provedeny transakční příkazy COMMIT nebo ROLLBACK kromě ROLLBACK TO SAVEPOINT na bod návratu vytvořený uvnitř tohoto složeného příkazu. Deklarace handleru typu REDO nebo UNDO smí být obsažena pouze v atomickém složeném příkazu.
Je-li uvedeno koncové návěští, pak musí být uvedeno také stejné počáteční návěští. Uvnitř složeného příkazu nesmí být žádný příkaz označen stejným návěštím.
V deklaracích bezprostředně obsažených ve složeném příkazu se nesmí vyskytnout dvakrát stejné jméno proměnné resp. rutiny, dvakrát stejné jméno výjimky nebo dvakrát stejné jméno kurzoru.
Rozšíření jazyka SQL proti normě
![]() | Řídící příkazy | Přiřazovací příkaz SET | ![]() |