> From: marc...@ig.com.br
> To: pgbr-geral@listas.postgresql.org.br
> Date: Wed, 12 Oct 2011 16:52:03 -0300
> Subject: Re: [pgbr-geral] Desculpem, mais uma vez sobre acentos (LATIN1)
> 
> Bem, depois da ajuda dos amigos aqui da lista, vendo que ainda não há algo 
> nativo no postgres, resolvi usar uma função para minhas pesquisas, assim 
> resolvo meu problema por hora.
> 
> Segue a função caso alguém precise
> 
> CREATE OR REPLACE FUNCTION fsemacento(character varying)
>   RETURNS character varying AS
> $BODY$
> SELECT TRANSLATE(upper($1), 
> 'áéíóúàèìòùãõâêîôôäëïöüçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜÇ', 
> 'aeiouaeiouaoaeiooaeioucAEIOUAEIOUAOAEIOOAEIOUC')
> $BODY$
>   LANGUAGE sql VOLATILE
>   COST 100;
> ALTER FUNCTION fsemacento(character varying) OWNER TO postgres;
> 
> Para usar faço o seguinte: (para buscar João, por exemplo)
> 
> SELECT * FROM TABELA
> WHERE (fsemacento(nome) = fsemacento('joao'))
> 
> Pode-se usar com Like e afins
> 
> 
> Além de ignorar os acentos ela também ignora maiusculas e minusculas
> 
> 
> ps: Pessoal, não sou expert no PG, por isso caso haja alguma coisa a 
> melhorar nesta função, sou todo ouvidos!
> 
Olá Marcelo,
Só uma observação na sua função: já que você colocou o UPPER($1) como o 
parâmetro de entrada do TRANSLATE, fica desnecessário colocar os caracteres 
minúsculos acentuados nas suas strings nos 2 parâmetros seguintes. 
Atenciosamente,
Marçal de Lima Hokama
e-mail: mhok...@hotmail.com                                       
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to