エラーのあるMySQL関数があります。
CREATE FUNCTION getpolygon(lat DOUBLE, lon DOUBLE, radius SMALLINT, corner TINYINT)
RETURNS geometry
DETERMINISTIC
BEGIN
DECLARE i INT;
DECLARE a, b, c DOUBLE;
DECLARE res TEXT;
IF corner < 3 || radius > 500 THEN
RETURN NULL;
END IF;
SET res = CONCAT(lat + radius / 111.12, ' ', lon, ',');
WHILE i < corner do
SET c = RADIANS(360 / corner * i);
SET a = lat + COS(c) * radius / 111.12;
SET b = lon + SIN(c) * radius / (COS(RADIANS(lat + COS(c) * radius / 111.12 / 111.12)) * 111.12);
SET res = CONCAT(res, a, ' ', b, ',');
SET i = i + 1;
END WHILE;
RETURN GEOMFROMTEXT(CONCAT('POLYGON((', res, lat + radius / 111.12, ' ', lon, '))'));
END;
このコードを実行すると、MySQLサーバーは「SQLエラー1064 .....nerar''の5行目」と表示します。
何が問題ですか?
よろしくお願いします!