Vous devez remplacer votre ;
délimiteur avec quelque chose comme $$
pour éviter ce genre d'erreur.
Après la définition de votre fonction, vous pouvez redéfinir le délimiteur sur ;
.
Cela devrait fonctionner :
DELIMITER $$
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END$$
DELIMITER ;