function - quitar - select acentos sql server
Función para eliminar acentos en postgreSQL (1)
Use el módulo que unaccent se incluye con PostgreSQL.
somedb=# CREATE EXTENSION unaccent;
CREATE EXTENSION
somedb=# SELECT unaccent(''Hôtel'');
unaccent
----------
Hotel
somedb=# SELECT * FROM table WHERE lower(unaccent(table.id)) = lower(''Jose'');
Y acelere un poco las cosas generando un índice sin acento y en minúsculas:
somedb=# CREATE INDEX CONCURRENTLY ON table (lower(unaccent(id)));
Posible duplicado:
¿PostgreSQL soporta intercalaciones "insensibles al acento"?
Estoy tratando de eliminar los acentos, así que cuando hago un SELECCIONAR , los ignora.
Ejemplo:
SELECT * FROM table WHERE
table.id ILIKE ''Jose'';
Vuelve:
José
Jose
Jósé
Jóse
o algo así.
Encontré estas funciones y no funcionan. Estoy pensando que puede ser el hecho de que estoy usando Struts 1.X, por favor revísalos y dime dónde estoy equivocado o qué otra función debo usar.
Primera funcion
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;
Segunda funcion
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;
Ambas funciones generan el siguiente error cuando ejecuto el archivo en NetBeans:
ERROR: unterminated dollar-quoted string at or near "*the string that starts the function*"