> From: [email protected] > To: [email protected] > 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: [email protected]
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
