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*"

Antworten auf die Frage(1)

Ihre Antwort auf die Frage