mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-10597 Cursors with parameters
This commit is contained in:
@ -615,3 +615,45 @@ SHOW FUNCTION CODE f1;
|
||||
SELECT f1(3), f1(4), f1(5), f1(6) FROM DUAL;
|
||||
DROP FUNCTION f1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of MDEV-10597 Cursors with parameters
|
||||
--echo #
|
||||
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE p1(arg_value_a VARCHAR, arg_value_b VARCHAR,
|
||||
arg_pattern_a VARCHAR, arg_pattern_b VARCHAR)
|
||||
AS
|
||||
v_a VARCHAR(10);
|
||||
v_b VARCHAR(20);
|
||||
CURSOR c (p_value_a VARCHAR,
|
||||
p_value_b VARCHAR,
|
||||
p_pattern_a VARCHAR,
|
||||
p_pattern_b VARCHAR,
|
||||
p_limit_a INT,
|
||||
p_limit_b INT,
|
||||
p_unused TEXT) IS
|
||||
(SELECT p_value_a, p_value_b FROM DUAL
|
||||
WHERE p_value_a LIKE p_pattern_a LIMIT p_limit_a)
|
||||
UNION
|
||||
(SELECT p_value_b, p_value_a FROM DUAL
|
||||
WHERE p_value_b LIKE p_pattern_b LIMIT p_limit_b);
|
||||
BEGIN
|
||||
OPEN c(arg_value_a, (SELECT arg_value_b),
|
||||
arg_pattern_a, arg_pattern_b, 100, 101, 'x');
|
||||
LOOP
|
||||
FETCH c INTO v_a, v_b;
|
||||
EXIT WHEN c%NOTFOUND;
|
||||
SELECT v_a, v_b;
|
||||
END LOOP;
|
||||
CLOSE c;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
CALL p1('aaa','bbb','aaa','bbb');
|
||||
SHOW PROCEDURE CODE p1;
|
||||
DROP PROCEDURE p1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of MDEV-10597 Cursors with parameters
|
||||
--echo #
|
||||
|
Reference in New Issue
Block a user