我创建了一个在数据库中可用的函数,但是我正在使用的IDE(HeidiSQL)生成的该函数的CREATE代码抛出错误:


  错误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


有什么建议么?

最佳答案

尝试:

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

关于mysql - MySQL函数具有REPLACE引发语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26817620/

10-08 20:43