Простой сохраненный процесс с простым курсором не будет компилироваться - PullRequest
0 голосов
/ 21 марта 2019

Я часами изучал, как создать простой курсор MySQL внутри хранимого процесса (из Workbench), но, что бы я ни пытался, я всегда получаю эту ошибку:

Команды изсинхронизации;Вы не можете выполнить эту команду сейчас

Вот мой сохраненный процесс:

DELIMITER //
DROP PROCEDURE IF EXISTS ApplyNewFormFieldsToExistingPolicies;
CREATE PROCEDURE ApplyNewFormFieldsToExistingPolicies(argAgencyID int)
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE t AS INT; -- TruckerID
  DECLARE a AS INT; -- AgentID
  DECLARE cursor1 CURSOR FOR SELECT AgentUserID AS AgentID, ID AS TruckerID from Users where IsTrucker = 1 AND AgencyID = argAgencyID
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cursor1;

  read_loop: LOOP
    FETCH cursor1 INTO t, a;

    -- do something with 't'
    -- do something with 'a'

  END LOOP;
  CLOSE cursor1;
END //
DELIMITER ;

Этот sql действителен и возвращает ожидаемые данные:

SELECT AgentUserID AS AgentID, ID AS TruckerID from Users where IsTrucker = 1 AND AgencyID = 1

Есть идеи, что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...