mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-10839 sql_mode=ORACLE: Predefined exceptions: TOO_MANY_ROWS, NO_DATA_FOUND, DUP_VAL_ON_INDEX
This commit is contained in:
54
mysql-test/suite/compat/oracle/t/exception.test
Normal file
54
mysql-test/suite/compat/oracle/t/exception.test
Normal file
@ -0,0 +1,54 @@
|
||||
SET sql_mode=ORACLE;
|
||||
|
||||
--echo #
|
||||
--echo # sql_mode=ORACLE: Predefined exceptions: TOO_MANY_ROWS, NO_DATA_FOUND, DUP_VAL_ON_INDEX
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # Testing NO_DATA_FOUND and TOO_MANY_ROWS
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (10),(20);
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE p1(lim INT, res OUT VARCHAR)
|
||||
AS
|
||||
a INT;
|
||||
BEGIN
|
||||
SELECT a INTO a FROM t1 LIMIT lim;
|
||||
EXCEPTION
|
||||
WHEN TOO_MANY_ROWS THEN res:='--- too_many_rows cought ---';
|
||||
WHEN NO_DATA_FOUND THEN res:='--- no_data_found cought ---';
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
SET @res='';
|
||||
CALL p1(0, @res);
|
||||
SELECT @res;
|
||||
CALL p1(2, @res);
|
||||
SELECT @res;
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Testing DUP_VAL_ON_INDEX
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE p1(res OUT VARCHAR)
|
||||
AS
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (10);
|
||||
INSERT INTO t1 VALUES (10);
|
||||
EXCEPTION
|
||||
WHEN DUP_VAL_ON_INDEX THEN res:='--- dup_val_on_index cought ---';
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
SET @res='';
|
||||
CALL p1(@res);
|
||||
SELECT @res;
|
||||
SELECT * FROM t1;
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
Reference in New Issue
Block a user