Я пишу хранимую процедуру на mariadb 5.5
и пытаюсь вернуть код ошибки, когда в ней происходит SQL EXCEPTION
.
Мой код похож на ниже ...
delimiter $$
CREATE PROCEDURE sp_test(
IN fooin varchar(50),
INOUT fooout varchar(50)
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SET fooout = '9999'; #which means error
RESIGNAL;
END;
SET fooout = '0000';
select now_(); # Error happens here on my purpose
END$$
DELIMITER ;
Результат как ниже ...
MariaDB [emsdevdb]> call sp_test('foo',@result);
ERROR 1305 (42000): FUNCTION emsdevdb.now_ does not exist
MariaDB [emsdevdb]> select @result;
+---------+
| @result |
+---------+
| NULL |
+---------+
1 row in set (0.00 sec)
Почему @result
печатает NULL вместо '9999'?
Как вернуть мой собственный код ошибки для случая SQL EXCEPTION
?
NULL
значение параметра out
означает, что хранимая процедура содержит ошибку?
Любой совет будет оценен.
Заранее спасибо.