602SQL-┌plnß dokumentace Index   Tisk  

Slo₧en² p°φkaz (SQL)

slo₧en² p°φkaz ::= [ nßv∞Ütφ : ] BEGIN [ [ NOT ] ATOMIC ]
[ deklarace_prom∞nn²ch à ]
[ deklarace_rutiny à ]
[ deklarace_v²jimky à ]
[ deklarace_kurzoru à]
[ deklarace_handleru à]
[ p°φkaz à]
END [ nßv∞Ütφ ];

Slo₧en² p°φkaz 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), 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 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∞