Не могу получить этот MySQL UDF для создания

Когда я пытаюсь создать эту функцию, я получаю различные коды ошибок, последняя из которых: "1064 - у вас есть ошибка в синтаксисе SQL; обратитесь к руководству, соответствующему версии вашего сервера MariaDB, для правильного использования синтаксиса". рядом со строкой 2 "

CREATE FUNCTION DebtOwed(SearchEmail Varchar(70))
RETURNS FLOAT(10,2);
BEGIN
  DECLARE Total Float(10,2);
  SELECT Sum(Amount) INTO Total
  FROM tblFinances
  WHERE email=SearchEmail AND Paid=False ;
  RETURN Total;
END;

Любые подсказки относительно того, что я делаю неправильно?

2 ответа

Решение

Вам нужно установить другой разделитель во время определения вашей функции.

Так что-то вроде этого:

DELIMITER $$

CREATE FUNCTION DebtOwed(SearchEmail Varchar(70))
RETURNS FLOAT(10,2)
BEGIN
  DECLARE Total Float(10,2);
  SELECT Sum(Amount) INTO Total
  FROM tblFinances
  WHERE email=SearchEmail AND Paid=False ;
  RETURN Total;
END$$

DELIMITER ;

Решение было комбинацией необходимости другого разделителя и удаления; после ВОЗВРАЩЕНИЯ ПЛАВАНИЯ (10,2)

DELIMITER $$
CREATE FUNCTION DebtOwed(SearchEmail Varchar(70))
RETURNS FLOAT(10,2)
BEGIN
  DECLARE Total Float(10,2);
  SELECT Sum(Amount) INTO Total
  FROM tblFinances
  WHERE email=SearchEmail AND Paid=False ;
  RETURN Total;
END$$
DELIMITER ;

Спасибо!

Другие вопросы по тегам