尝试在MySQL FUnction中使用IF语句时出错

Ngabioud:

我正在尝试创建MySQL函数,并在尝试创建它时出现错误。我不知道我在做什么错。我读到这可能是因为我没有添加“ END IF”,但是我正在这样做。它与“ RETURN 1”有关吗?

这是代码:

CREATE FUNCTION esParaCierreSTE(cola VARCHAR(200))
RETURNS BOOLEAN
BEGIN
        IF cola like "Diseño red - Corporativo - DISEÑO CORPORATIVO FIN DE REFORMA DE RED (ACTUALIZACIÓN DE PLANO DE TODAS LAS REFORMAS DE HATCH)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Edificios - DISEÑO EDIFICIOS FIN DE REFORMA DE RED (ACTUALIZACIÓN DE PLANO DE TODAS LAS REFORMAS DE EDIFICIOS)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Instalaciones - DISEÑO INSTALACIONES FIN DE REFORMA DE RED (ACTUALIZACIÓN DE PLANO DE TODAS LAS REFORMAS DE INSTALACIONES)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Zona Fuera de Nodo - DISEÑO ZONA NO HABILITADA FIN DE REFORMA DE RED (ACTUALIZACIÓN DE TODAS LAS REFORMAS DE ZONA NO HABILITADA)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Tickets para Cierre (Fin de reforma)%" THEN
            RETURN 1;
        END IF;

        RETURN 0;
END;

顺便说一下,这是错误:

错误代码:1064。检查与您的MariaDB服务器版本相对应的手册以在第5行的''附近使用正确的语法

非常感谢你!

托马斯·G:

您的代码看起来不错,因此分隔符可能会导致无法正确编译函数的问题。

创建PROCEDUREs或FUNCTIONs时,必须更改默认的定界符“ ;”,以便编译器知道函数中的定界符与CREATE语句本身结尾之间的区别。

完成后,您将默认定界符重新设置。

这使 :

 delimiter //

CREATE FUNCTION esParaCierreSTE(cola VARCHAR(200))
RETURNS BOOLEAN
BEGIN
        IF cola like "Diseño red - Corporativo - DISEÑO CORPORATIVO FIN DE REFORMA DE RED (ACTUALIZACIÓN DE PLANO DE TODAS LAS REFORMAS DE HATCH)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Edificios - DISEÑO EDIFICIOS FIN DE REFORMA DE RED (ACTUALIZACIÓN DE PLANO DE TODAS LAS REFORMAS DE EDIFICIOS)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Instalaciones - DISEÑO INSTALACIONES FIN DE REFORMA DE RED (ACTUALIZACIÓN DE PLANO DE TODAS LAS REFORMAS DE INSTALACIONES)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Zona Fuera de Nodo - DISEÑO ZONA NO HABILITADA FIN DE REFORMA DE RED (ACTUALIZACIÓN DE TODAS LAS REFORMAS DE ZONA NO HABILITADA)%" THEN
            RETURN 1;
        END IF;
        IF cola like "Diseño red - Tickets para Cierre (Fin de reforma)%" THEN
            RETURN 1;
        END IF;

        RETURN 0;
END //

delimiter ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章