我评论说,当我试图创建一个函数来解析特殊字符并递归调用时,我遇到了问题。
Mysql代码:
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:
SELECT fn_obt_val_par_campo('ALVARZ') AS CAMPO我希望你能帮我解决问题。
发布于 2016-03-09 16:35:35
这与特殊的字符无关:
CREATE FUNCTION fn_obt_val_par_campo(campo VARCHAR(80))
RETURNS VARCHAR(80);
^---this is the error
BEGIN在create/begin之间不允许分隔符,仅此而已。
https://stackoverflow.com/questions/35897274
复制相似问题