Функция удаления акцентов в postgreSQL [дубликат]
Возможный дубликат:
Поддерживает ли PostgreSQL «нечувствительный к акценту » Параметры сортировки? I»
Я пытаюсь удалить акценты, поэтому, когда я делаюВЫБРАТЬ это игнорирует их.
Пример:
SELECT * FROM table WHERE
table.id ILIKE 'Jose';
Возвращает:
José
Jose
Jósé
Jóse
или что-то типа того.
Я нашел эти функции, и они не будут работать, яЯ думаю, это может быть тот факт, что яЯ использую Struts 1.X, пожалуйста, проверьте их и скажите мне, где яЯ не прав или какую другую функцию я должен использовать.
ПЕРВАЯ ФУНКЦИЯ
CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $
DECLARE
input_string text := $1;
BEGIN
input_string := translate(input_string, 'âãäåāăąÁÂÃÄÅĀĂĄ', 'aaaaaaaaaaaaaaa');
input_string := translate(input_string, 'èééêëēĕėęěĒĔĖĘĚ', 'eeeeeeeeeeeeeee');
input_string := translate(input_string, 'ìíîïìĩīĭÌÍÎÏÌĨĪĬ', 'iiiiiiiiiiiiiiii');
input_string := translate(input_string, 'óôõöōŏőÒÓÔÕÖŌŎŐ', 'ooooooooooooooo');
input_string := translate(input_string, 'ùúûüũūŭůÙÚÛÜŨŪŬŮ', 'uuuuuuuuuuuuuuuu');
return input_string;
END;
$ LANGUAGE plpgql;
ВТОРАЯ ФУНКЦИЯ
CREATE OR REPLACE FUNCTION norm_text_latin(character varying)
RETURNS character varying AS
$BODY$
declare
p_str alias for $1;
v_str varchar;
begin
select translate(p_str, 'ÀÁÂÃÄÅ', 'AAAAAA') into v_str;
select translate(v_str, 'ÉÈËÊ', 'EEEE') into v_str;
select translate(v_str, 'ÌÍÎÏ', 'IIII') into v_str;
select translate(v_str, 'ÌÍÎÏ', 'IIII') into v_str;
select translate(v_str, 'ÒÓÔÕÖ', 'OOOOO') into v_str;
select translate(v_str, 'ÙÚÛÜ', 'UUUU') into v_str;
select translate(v_str, 'àáâãäå', 'aaaaaa') into v_str;
select translate(v_str, 'èéêë', 'eeee') into v_str;
select translate(v_str, 'ìíîï', 'iiii') into v_str;
select translate(v_str, 'òóôõö', 'ooooo') into v_str;
select translate(v_str, 'ùúûü', 'uuuu') into v_str;
select translate(v_str, 'Çç', 'Cc') into v_str;
return v_str;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Обе функции генерируют следующую ошибку при запуске файла в NetBeans:
ERROR: unterminated dollar-quoted string at or near "*the string that starts the function*"