定义存储过程MySQL时出错

时间:2015-11-20 07:14:50

标签: mysql stored-procedures

我正在尝试在mysql中定义存储过程但是收到错误我无法理解我做错了什么。

CREATE PROCEDURE distance(lat1 Float,long1 Float,lat2 Float,long2 Float,OUT distance Float)
BEGIN

    SET distance =  ROUND((ACOS(SIN(RADIANS(lat1))*SIN(RADIANS(lat2))+COS(RADIANS(lat1))*COS(RADIANS(lat2))*COS(RADIANS(lon2-lon1)))*6371), 2);

END

ERROR:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

1 个答案:

答案 0 :(得分:3)

使用分隔符解决此问题:

delimiter //
CREATE PROCEDURE distance(lat1 Float,long1 Float,lat2 Float,long2 Float,OUT distance Float)
BEGIN

    SET distance =  ROUND((ACOS(SIN(RADIANS(lat1))*SIN(RADIANS(lat2))+COS(RADIANS(lat1))*COS(RADIANS(lat2))*COS(RADIANS(lon2-lon1)))*6371), 2);

END //
delimiter ;
相关问题