Pelo JPA tem como usar Query Native, quando precisar alguma função do banco use ela...
Adriano Leandro Müller escreveu: > 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 > > _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral