Хранимая процедура вылетает при нахождении первого значения в цикле

Написал хранимую процедуру на своем сервере MySql. Процедура работает без проблем, все хорошо.

В процедуре есть курсор и цикл.

Пишу/копирую процедуру на другой сервер, при первом нахождении нужной строки, с которой будет работать цикл , процедура завершается. После попыток отладки, нашел строчки, где все это происходит. Выделил в коде(написано ----- начало проблемы/конец проблемы------)

DELIMITER //

CREATE PROCEDURE curdemo()
BEGIN
DECLARE done INTEGER DEFAULT 0;
DECLARE curSapTNID1 INTEGER;
DECLARE resultpTN INTEGER;
DECLARE dayofyear INTEGER;
DECLARE yearcurr INTEGER;
DECLARE tDate1 VARCHAR(10);
DECLARE start_date1 DATE;
DECLARE end_date1 DATE;
DECLARE curDate DATE;
DECLARE curGrCode TEXT;
DECLARE trap INTEGER;
DECLARE cursor_tabel CURSOR FOR SELECT DISTINCT sapTN from personua;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;


SET yearcurr = YEAR(CURDATE());


IF MOD(yearcurr,4) = 0 THEN 
     SET dayofyear = 366;
ELSE
     SET dayofyear = 365;
END IF;

OPEN cursor_tabel;

     WHILE done = 0 DO
     FETCH cursor_tabel INTO curSapTNID1;
     SET resultpTN = (SELECT COUNT(*) FROM work_current WHERE work_current.pTN = curSapTNID1);
     IF resultpTN < dayofyear THEN 
     SELECT DISTINCT pTn FROM work_current WHERE pTn = curSapTNID1;
    
      
    SET tDate1 = CONCAT(YEAR(CURDATE()),'-01-01');
    SET start_date1 = (SELECT CAST(tDate1 AS DATE));
    SET end_date1 = (SELECT DATE_ADD(start_date1, INTERVAL 1 YEAR));
    
    
        SET curDate = (SELECT start_date1);
        WHILE curDate < end_date1 DO
                -------Начало проблемы---------------------------
            SET curGrCode = (SELECT GrCode FROM work_current WHERE work_current.Date = curDate AND pTN = curSapTNID1 AND isAct = 1 LIMIT 1);
            IF curGrCode IS NULL THEN
                INSERT INTO work_current(Date,GrCode,isAct, pTN,DBEG,DEND) VALUES (curDate,'В',1,curSapTNID1,start_date1,end_date1);
            END IF;
                -----Конец проблемы--------------------------
            SET curDate = (SELECT DATE_ADD(curDate, INTERVAL 1 DAY));
        END WHILE;
 
     END IF;
    
END WHILE;
CLOSE cursor_tabel;
END 
// DELIMITER ;

Ответы (1 шт):

Автор решения: Евгений Южаков

Ошибка была в том что в строке находилась запись с текстом , в котором имелся штрих(') , который сразу прекращал процедуру. Жесть)

→ Ссылка