Obrigado turma. Deu certo aqui, porem devido toda a aplicação trabalhar com JPA (Java) teremos que modificar os sistemas envolvidos para trabalhar direto com SQL chamando a função.
Obrigado Osvaldo. At. Leandro Müller Analista de Sistemas -----Mensagem original----- De: pgbr-geral-boun...@listas.postgresql.org.br [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Osvaldo Kussama Enviada em: quarta-feira, 3 de junho de 2009 16:27 Para: Comunidade PostgreSQL Brasileira Assunto: Re: [pgbr-geral] problema com acentos no UTF8 2009/6/3 Leandro Müller <leandr...@muriki.com.br>: > > Sou novo nesta lista, nesses últimos meses estou migrando uma base de dados > de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou muito > lento devido a complexidade de relatórios e diversos recursos que precisamos > agora. Seja bem vindo! > > Bom o único problema que tivemos com o banco de dados é quanto a pesquisa > com ilike em palavras com acentos. > > Exemplo: > > Select nome from cliente where nome ilike joao%; > > O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse banco > esta na codificação UTF8 Sim João é diferente de Joao e também diferente de joão, JOÃO e joao. > > Tentei criar um banco como latin1 porem o post não aceita criar. Você não pode mudar mas ele aceita criar (vide initdb) mas tem que ser compatível com o locale de seu S.O. > > Alguém tem idéia de que tipo configuração devo fazer para fazer pesquisas > com acento? > Quando o encoding é LATIN1, LATIN2, LATIN9 ou WIN1250 podemos usar a função to_ascii: http://www.postgresql.org/docs/current/interactive/functions-string.html Quando se utiliza o UTF8 o pessoal tem utilizado uma função de conversão como esta: CREATE FUNCTION sem_acento(text) RETURNS text AS $$ SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ', 'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC'); $$ LANGUAGE sql IMMUTABLE STRICT; Ficaria assim: SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(joao%); Caso faça uso intensivo desta query considere a criação de um índice funcional para melhorar a performance. Osvaldo _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral