|
|
| 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 |