1

エラーのある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行目」と表示します。

何が問題ですか?

よろしくお願いします!

4

1 に答える 1