首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析特殊字符-函数MySQL5.5?

解析特殊字符-函数MySQL5.5?
EN

Stack Overflow用户
提问于 2016-03-09 16:32:07
回答 1查看 26关注 0票数 0

我评论说,当我试图创建一个函数来解析特殊字符并递归调用时,我遇到了问题。

Mysql代码:

代码语言:javascript
复制
DROP FUNCTION IF EXISTS fn_obt_val_par_campo;
DELIMITER $$
CREATE FUNCTION fn_obt_val_par_campo(campo VARCHAR(80))
    RETURNS VARCHAR(80)
BEGIN

    DECLARE par_campo VARCHAR(80);
    DECLARE for_campo VARCHAR(80);
    DECLARE ind_campo INT DEFAULT 1;

    SET for_campo = LOWER(campo);

    WHILE ind_campo = 1 DO

        IF INSTR(for_campo, 'á') != 0 THEN
            SET par_campo = UPPER(REPLACE(for_campo, 'á', 'a'));
            SET for_campo = par_campo;
            SET ind_campo = 1;
        ELSEIF INSTR(for_campo, 'é') != 0 THEN
            SET par_campo = UPPER(REPLACE(for_campo, 'é', 'e'));
            SET ind_campo = 1;
        ELSEIF INSTR(for_campo, 'í') != 0 THEN
            SET par_campo = UPPER(REPLACE(for_campo, 'í', 'i'));
            SET ind_campo = 1;
        ELSEIF INSTR(for_campo, 'ó') != 0 THEN
            SET par_campo = UPPER(REPLACE(for_campo, 'ó', 'o'));
            SET ind_campo = 1;
        ELSEIF INSTR(for_campo, 'ú') != 0 THEN
            SET par_campo = UPPER(REPLACE(for_campo, 'ú', 'u'));
            SET ind_campo = 1;
        ELSE
            SET par_campo = UPPER(for_campo);
            SET ind_campo = 0;
        END IF;

    END WHILE;

    RETURN par_campo;

END;
$$
DELIMITER ;

协商永远不会结束,并且连接被阻止mysql:

代码语言:javascript
复制
SELECT fn_obt_val_par_campo('ALVARZ') AS CAMPO

我希望你能帮我解决问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-09 16:35:35

这与特殊的字符无关:

代码语言:javascript
复制
CREATE FUNCTION fn_obt_val_par_campo(campo VARCHAR(80))
    RETURNS VARCHAR(80);
                       ^---this is the error
BEGIN

在create/begin之间不允许分隔符,仅此而已。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35897274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档