|
![]() | Příkaz CALL - volání procedury | ![]() | Řídící příkazy | Příkaz RESIGNAL | ![]() |
příkaz_SIGNAL ::= SIGNAL identifikátor_výjimky;
Příkaz SIGNAL vyvolá zadanou uživatelem definovanou výjimku. Výjimka musí být předem deklarována. Je-li deklarován handler pro tuto výjimku, handler se provede a v provádění příkazů se pokračuje v závislosti druhu handleru a místě, kde byl nalezen.
Pokud se pro zadanou výjimku nenajde handler na žádné úrovni, nastane chybový sqlstate 45000 (SQ_UNHANDLED_USER_EXCEPT).
Příklad použití:
PROCEDURE `POKUS_SIGNAL`(); BEGIN DECLARE vyskok CONDITION; DECLARE CONTINUE HANDLER FOR vyskok BEGIN CALL log_write("NULL - uvnitř continue handleru"); ... END; FOR radek AS c INSENSITIVE CURSOR FOR SELECT * FROM Firmy DO BEGIN IF radek.adresa IS NULL THEN SIGNAL vyskok; ELSE ... CALL log_write(radek.adresa); END IF; END; END FOR; END
Viz
![]() | Příkaz CALL - volání procedury | ![]() | Řídící příkazy | Příkaz RESIGNAL | ![]() |