2016-08-22 2 views
0

Я пытаюсь использовать курсор и после учебника, который я нашел в Интернете, я смог найти следующий курсор.Ошибка синтаксиса Loop в курсоре MySQL

DELIMITER $$ 

CREATE PROCEDURE customers_with_oldest_version (INOUT customerCount varchar(4000)) 
BEGIN 

DEClARE customers_with_oldest_version CURSOR FOR 
select * from CustomerSoftware where software in (select min(minimumSoftware) from ProductSoftware); 

DECLARE CONTINUE HANDLER 
FOR NOT FOUND SET @finished = 1; 

set @row_entry = ""; 

open customers_with_oldest_version; 

get_customers: LOOP 

FETCH customers_with_oldest_version INTO @row_entry; 

IF @finished = 1 THEN 
LEAVE get_customers; 
END IF; 

SET @customerCount = @customerCount + 1; 

END LOOP; 

CLOSE customers_with_oldest_version; 

END$$ 

DELIMITER ; 

Но я не могу создать эту процедуру, так как PHPMyAdmin дает мне ошибку, говоря, что #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@row_entry; IF @finished = 1 THEN LEAVE get_customers; END IF; SET @c' at line 16

Что я здесь отсутствует?

+0

Вы никогда не используете '@ row_entry'. Почему вы в нее вникаете? – Barmar

+0

@Barmar Я планирую использовать его позже. Я просто хотел узнать, что вызывает эту ошибку. –

ответ

0

Вы не можете выбрать пользовательскую переменную. Это ошибка, которая существует уже много лет, см. https://bugs.mysql.com/bug.php?id=2261

Объявите для нее обычную локальную переменную.

Смежные вопросы