Funktion zum Entfernen von Akzenten in postgreSQL [duplizieren]
Mögliche Duplikate:
Unterstützt PostgreSQL "akzentunempfindliche" Kollatierungen?
Ich versuche also die Akzente zu entfernen, wenn ich eine macheWÄHLEN es ignoriert sie.
Beispiel:
SELECT * FROM table WHERE
table.id ILIKE 'Jose';
Es gibt zurück:
José
Jose
Jósé
Jóse
oder sowas ähnliches.
Ich habe diese Funktionen gefunden und sie funktionieren nicht. Ich denke, es könnte an der Tatsache liegen, dass ich Struts 1.X verwende. Bitte überprüfen Sie sie und sagen Sie mir, wo ich falsch liege oder welche andere Funktion ich verwenden soll.
ERSTE FUNKTION
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;
ZWEITE FUNKTION
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;
Beide Funktionen erzeugen den folgenden Fehler, wenn ich die Datei in NetBeans ausführe:
ERROR: unterminated dollar-quoted string at or near "*the string that starts the function*"