V²jimky a jejich oÜet°enφ v SQL

V²jimkami naz²vßme nestandardnφ situace, kterΘ mohou vzniknout p°i provßd∞nφ p°φkaz∙ SQL. P°φkladem budi₧ nap°φklad provßd∞nφ p°φkazu FETCH v situaci, kdy po₧adovan² zßznam neexistuje. Takovß situace obvykle znamenß vznik chyby a jejφ oznßmenφ klientovi. Jazyk SQL vÜak disponuje nßstroji, jak v²jimky oÜet°it, tedy p°edepsat, co se po vzniku v²jimky mß dφt, a zabrßnit tak vzniku chyby.

V²jimky jsou trojφho druhu:

Nastane-li v²jimka, systΘm pro nφ hledß tzv. handler. Handler se p°i°azuje v²jimce nebo t°φd∞ v²jimek v deklaraci handleru. P°i hledßnφ handleru se postupuje od mφsta, v n∞m₧ k v²jimce doÜlo, sm∞rem ven. Je-li handler nalezen, provede se a v dalÜφm provßd∞nφ p°φkaz∙ se pokraΦuje v zßvislosti na druhu handleru.

Dojde-li p°i provßd∞nφ handleru H k v²jimce, kterß nenφ uvnit° n∞j oÜet°ena, neuplatnφ se p°i jejφm oÜet°enφ handlery deklarovanΘ na stejnΘ ·rovni jako handler H, ale pouze handlery deklarovanΘ vn∞.

Uvnit° handleru lze pou₧φt p°φkaz RESIGNAL, kter² p°edß v²jimku zpracovßvanou tφmto handlerem k vn∞jÜφmu oÜet°enφ.

Handlery p°i°azenΘ k oÜet°enφ v²jimek mohou zpracovßvat takΘ chyby definovanΘ implementacφ WinBase602. Na tyto chyby se deklarace handleru odkazuje pomocφ sqlstate ve tvaru Wabcd, kde abcd je Φφslo chyby, p°φpadn∞ dopln∞nΘ zleva nulami.

Handlery nemohou oÜet°ovat chyby v syntaxi p°φkaz∙ SQL.

Odchylky od Intermediate level sm∞rem k Full level nebo k SQL 3