Я хотел обновить столбец таблицы MySQL, используя хранимую процедуру.Тип данных столбца - многоугольник (пространственные данные)
SET boundryData = (SELECT boundry FROM tbl_data WHERE tbl_id = currentRow);
SET updatedBoundry = ST_GeomFromText(boundryData);
дает ошибку и говорит, что недопустимые данные, предоставленные функции, и если я жестко связал тот же набор данных, как указано ниже, хранимая процедура работает как намерение
SET updatedBoundry = ST_GeomFromText('POLYGON((6.546269854000059 80.15311213900003,6.54627481600005 80.15298415800004,6.546251038000038 80.15310380500006,6.546269854000059 80.15311213900003))');
Вся хранимая процедура выглядит следующим образом
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`()
BEGIN
DECLARE rowCount INT;
DECLARE boundryData longtext;
DECLARE currentRow INT;
DECLARE updatedBoundry polygon;
SET rowCount=(SELECT COUNT(*) FROM tbl_kml_data);
SET currentRow = 1;
myUpdateLoop: WHILE (currentRow <= rowCount) DO
SET @boundryData = (SELECT boundry FROM tbl_kml_data WHERE tbl_id = currentRow);
SET updatedBoundry =ST_GeomFromText('POLYGON((6.546269854000059 80.15311213900003,6.54627481600005 80.15298415800004,6.54605968900006 80.15315188800008,6.546251038000038 80.15310380500006,6.546269854000059 80.15311213900003))');
/*SET @updatedBoundry = ST_GeomFromText( @boundryData);*/
UPDATE tbl_kml_data SET f_polygon = ST_GeomFromText(@boundryData) WHERE tbl_id = currentRow;
SET currentRow = currentRow + 1;
End WHILE myUpdateLoop;
END
Любая идея, как решить эту проблему