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構文エラーを通知します。ここでEDIT 1
は、プロシージャ私はから "@" を削除した場合を除き、機能しませんexempleある "@my_name INTO curseur1をFETCH;" :
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