DELIMITER //
DROP FUNCTION IF EXISTS `strSplit`//
CREATE PROCEDURE `validLoadAndCategory`(IN `mylist` VARCHAR(255))
body:
BEGIN
IF mylist = '' THEN LEAVE body; END IF;
SET @saTail = mylist;
SET @lastId = NULL;
WHILE @saTail != '' DO
SET @sHead = SUBSTRING_INDEX(@saTail, ',', 1);
SET @saTail = SUBSTRING( @saTail, LENGTH(@sHead) + 2 );
/* Курсоры */
DECLARE categoryId INT;
DECLARE categorySweat INT;
DECLARE categoryUrl VARCHAR(255);
/*Обеденяем курсор*/
DECLARE `categoryKursor` CURSOR FOR SELECT
`id`,`sweat_category`,`url`
FROM `category`
WHERE `url`=@sHead AND `sweat_category`=@lastId AND `action`='1';
/*Открываем курсор*/
Open categoryKursor;
/*извлекаем данные */
FETCH categoryKursor INTO categoryId,categorySweat,categoryUrl;
/*Указываем идентификатор текущей категории*/
SET @lastId = categoryId;
END WHILE;
/*Выводим данные последнего раздела*/
SELECT * FROM `category` WHERE `id`=categoryId AND `action`='1' LIMIT 1;
END//
DELIMITER ;

Подскажите пожалуйста в чём ошибся
Ругаеца на 11 линию DECLARE categoryId INT;