From 4b61495576bc240392d7aaaec38ecac8631e447c Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Tue, 16 Aug 2016 10:24:12 +0400 Subject: MDEV-10411 Providing compatibility for basic PL/SQL constructs Part 9: EXCEPTION handlers EXCEPTION is now supported in inner blocks. --- mysql-test/suite/compat/oracle/t/sp.test | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'mysql-test/suite/compat/oracle/t/sp.test') diff --git a/mysql-test/suite/compat/oracle/t/sp.test b/mysql-test/suite/compat/oracle/t/sp.test index a838a74d2da..6b47ab4f7d6 100644 --- a/mysql-test/suite/compat/oracle/t/sp.test +++ b/mysql-test/suite/compat/oracle/t/sp.test @@ -497,3 +497,31 @@ CALL sp1(@v, 30001); CALL sp1(@v, 30002); SELECT @v; DROP PROCEDURE sp1; + + +DELIMITER /; +CREATE PROCEDURE sp1 (v IN OUT INT, error IN INT) +IS +BEGIN + BEGIN + BEGIN + SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=error, MESSAGE_TEXT='User defined error!'; + v:= 223; + EXCEPTION + WHEN 30001 THEN + BEGIN + v:= 113; + END; + END; + END; +END; +/ +DELIMITER ;/ +SET @v=10; +CALL sp1(@v, 30001); +SELECT @v; +SET @v=10; +--error 30002 +CALL sp1(@v, 30002); +SELECT @v; +DROP PROCEDURE sp1; -- cgit v1.2.1