CREATE FUNCTION 'remover_acentos' (text_1 text)
RETURNS text
select
replace(text_1,'áâãäéêëíîÏóöôõúûüÁÂÃÄÉÊËÍÎÏÓÖÔÕÚÛÜçÇ','aaaaeeeiiioooouuuAAAAEEEIIIOOOOUUUcC');
Вышеуказанная функция бросает ошибку ниже.
Error 1415: Not allowed to return a result set from a function
Почему эта ошибка возникает?
Что делает SELECT
? Это вызывает ошибку. Используйте RETURN
для возврата скалярного значения.
CREATE FUNCTION 'remover_acentos' (text_1 text)
RETURNS text
RETURN replace(text_1,'áâãäéêëíîÏóöôõúûüÁÂÃÄÉÊËÍÎÏÓÖÔÕÚÛÜçÇ','aaaaeeeiiioooouuuAAAAEEEIIIOOOOUUUcC');
Думаю, это не будет делать то, что вы хотите. Если вы хотите заменить какое-либо одно вхождение одного из символов, вам понадобится более одного replace()
- для каждого символа, используйте его. подобно
DELIMITER $$
CREATE FUNCTION 'remover_acentos' (text_1 text)
RETURNS text
BEGIN
SET text_1 = replace(text_1,'á','a');
SET text_1 = replace(text_1,'à','a');
...
RETURN text_1;
END;$$
DELIMITER ;
remover_acentos
(текст_1 текст) ВОЗВРАЩАЕТ текст НАЧАТЬ выберите заменить (text_1, 'áâãäéêëíîÏóöôõúûüÁÂÄÄÊËÍÎÏÓÖÔÕÚÛÜçÇ', 'aaaaeeeiiioooouuuAAAAEEEIIIOOOOUUUC) ВЕРНУТЬ текст; КОНЕЦ просто так?