Почему эта хранимая функция MySQL возвращает значение null?

Кто-нибудь может объяснить, почему следующая хранимая функция MySQL всегда возвращает значение null? Если я заменю exchange_rate в SET @dollar = euro * exchange_rate; на 1.1013, все будет отлично.

DROP FUNCTION IF EXISTS euro_to_dollar;
DELIMITER $$
CREATE FUNCTION euro_to_dollar(euro double) returns double
BEGIN
  DECLARE dollar double;
  DECLARE exchange_rate double;
  SET @exchange_rate = 1.1013;
  SET @dollar = euro * exchange_rate;
  RETURN @dollar;
END $$
DELIMITER ;

person PSaR    schedule 23.05.2015    source источник
comment
Вы смешиваете разные переменные. . . попробуй SET @dollar = euro * @exchange_rate.   -  person Gordon Linoff    schedule 23.05.2015


Ответы (1)


Вы должны сделать ссылку на @exchange_rate следующим образом:

DROP FUNCTION IF EXISTS euro_to_dollar;
DELIMITER $$
CREATE FUNCTION euro_to_dollar(euro double) returns double
BEGIN
  DECLARE dollar double;
  DECLARE exchange_rate double;
  SET @exchange_rate = 1.1013;
  SET @dollar = euro * @exchange_rate;
  RETURN @dollar;
END $$
DELIMITER ;
person Francisco Romero    schedule 23.05.2015
comment
Большое спасибо, это было решение! :) - person PSaR; 23.05.2015