Возможно ли получить переменные курсора в локальные переменные? Поэтому я могу использовать их в подготовленном заявлении.Извлечение переменных курсора в локальные переменные
OPEN curseur2;
LOOP2: LOOP
SET no_more_rows = FALSE;
FETCH curseur2 INTO @a, @b, @c;
IF no_more_rows THEN
CLOSE curseur2;
LEAVE LOOP2;
END IF;
EXECUTE stmtCountBrut USING @a,@b,@c;
Это просто дает мне синтаксическую ошибку SQL.
EDIT 1
Вот процедура Exemple, что не работает, за исключением, если я удалить "@" от "FETCH INTO curseur1 @my_name;" :
DROP PROCEDURE IF EXISTS `01_input_brut`.test_cursor;
CREATE DEFINER=`root`@`%` PROCEDURE `test_cursor`()
BLOCK1: BEGIN
DECLARE no_more_rows1 INT;
DECLARE my_name VARCHAR(255);
DECLARE civility VARCHAR(255);
DECLARE curseur1 CURSOR FOR
SELECT `name`
FROM source;
DECLARE CONTINUE handler FOR NOT FOUND SET no_more_rows1 = TRUE;
OPEN curseur1;
LOOP1: LOOP
set no_more_rows1 = false;
FETCH curseur1 INTO @my_name;
IF no_more_rows1 THEN
CLOSE curseur1;
LEAVE LOOP1;
END IF;
INSERT INTO log (id, message, date) VALUES (NULL, @my_name, NOW());
END LOOP LOOP1;
END BLOCK1;
Ошибка:
[2016-11-17 16:19:34] [42000] [1064] У вас есть ошибка в вашем SQL синтаксиса ; проверьте руководство, соответствующее версии вашего сервера MySQL , для правильного синтаксиса, используемого рядом с '@my_name; IF no_more_rows1 THEN CLOSE curseur1; 'в строке 17
@fancyPants что вы имеете в виду? – Kvn91
Ваш код в процедуре? –
@ P.Salmon да, см. Мое редактирование для процедуры примера – Kvn91