MySQL函数与REPLACE抛出语法错误

时间:2014-11-08 13:26:42

标签: mysql stored-procedures

我创建了一个在我的数据库中工作的函数,但是我使用的(HeidiSQL)IDE生成的这个函数的CREATE代码引发了错误:

  

Erro SQL(1064):您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第10行

生成的代码如下:

CREATE DEFINER=`root`@`localhost` FUNCTION `CONVERTE_VALOR`(`VALOR` VARCHAR(255))
    RETURNS decimal(10,0)
    LANGUAGE SQL
    NOT DETERMINISTIC
    NO SQL
    SQL SECURITY DEFINER
    COMMENT 'Converte valor VARCHAR em DECIMAL para comparação'
BEGIN

    RETURN CAST(REPLACE(REPLACE(VALOR, '.', ''), ',', '.') AS UNSIGNED); /* Line 10 */

END

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试:

CREATE DEFINER=`root`@`localhost` FUNCTION `CONVERTE_VALOR`(`VALOR` VARCHAR(255))
    RETURNS decimal(10,0)
    LANGUAGE SQL
    NOT DETERMINISTIC
    NO SQL
    SQL SECURITY DEFINER
    COMMENT 'Converte valor VARCHAR em DECIMAL para comparação'
-- BEGIN
    RETURN CAST(REPLACE(REPLACE(VALOR, '.', ''), ',', '.') AS UNSIGNED); /* Line 10 */
-- END