Ошибка 1415: не разрешено возвращать набор результатов из функции - PullRequest
0 голосов
/ 22 мая 2018
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

Почему возникает эта ошибка?

1 Ответ

0 голосов
/ 22 мая 2018

Что там делает 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 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...