0
是否可以将游标变量读入局部变量?这样我就可以将它们用于准备好的声明中。将光标变量读入局部变量
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语法错误。
编辑1
这里是一个过程为例,不只是如果我删除从 “@” 工作 “Fetch curseur1 INTO @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日十六时19分34秒] [42000] [1064]你在你的SQL语法 有一个错误;查看与您的MySQL服务器版本 相对应的手册,查看在@my_name附近使用的正确语法; IF no_more_rows1 THEN CLOSE curseur1; “在第17行
@fancyPants你是什么意思? – Kvn91
你的代码是否在程序中? –
@ P.Salmon是的,请参阅我的编辑作为示例程序 – Kvn91