DECLARE LENGTH INT(20) DEFAULT 0;
DECLARE DIM_0 VARCHAR(255);
DECLARE DIM_1 VARCHAR(255);
DECLARE DIM_2 VARCHAR(255);
DECLARE DIM_3 VARCHAR(255);
DECLARE DIM_4 VARCHAR(255);
SET LENGTH = F_DIM_ITEM_NUM(DIM_I);
DECLARE i int(20) DEFAULT 0;
WHILE i < LENGTH
DO
SET concat('DIM_',i) = F_DIM_ITEM_GET(DIM_I, i + 1);
SET i = i + 1;
END WHILE;
Кажется, что возврат функции F_DIM_ITEM_GET не присваивается var DIM_i, или есть другие ошибки. Как я могу заставить его работать? Любой совет будет принят во внимание!Ошибка синтаксиса процедуры MySQL, как назначить значение промежуточной переменной?
С быстрым взглядом вы пытаетесь изменить код MySQL во время выполнения, я верю. Для выполнения этой задачи вам необходимо использовать [Dynamic SQL] (http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html). 'SET concat ('DIM_', i) = F_DIM_ITEM_GET (DIM_I, i + 1);' не изменяет сам код, например 'SET DIM_1 = F_DIM_ITEM_GET (DIM_I, i + 1);' именно это вы пытаетесь сделать , –
спасибо @JonathonOgden, это очень помогает мне. – Ivo