Silfar Goulart de Castro escreveu: > Não posso mudar o banco, o cliente é windows, e uma aplicação feita em > delphi, mas até o pgadmin3 do linux tem problema. > > Já vi exemplos usando convert(), mas nenhuma funcionou aqui devo estar > fazendo alguma coisa errada. > > Em Seg, 2008-03-17 às 11:35 -0300, Ribamar Sousa escreveu: >> Em 17/03/08, Silfar Goulart de Castro<[EMAIL PROTECTED]> escreveu: >>> OK, vasculhei a lista e tentei resolver o meu problema mas ainda não >>> consegui. >>> >>> alguem poderia me dar uma receita de bolo para isto >>> >>> repetindo, o encoding do banco está em utf8, preciso pesquisar por uma >>> parte inicial de um determinado campo, porém a consulta deve trazer >>> independente de maiúscula, minúscula, acentuado ou não, ç ou c etc... >>> >>> até agora tenho usado assim, mas o encoding era latin1. >>> >>> SELECT ID_TITULAR , NM_TITULAR, SIGLA_SOC, TP_PESSOA >>> FROM TITULAR T >>> WHERE (to_ascii(t.nm_titular) ilike to_ascii(:par)) >>> ORDER BY NM_TITULAR >> Algumas sugestões: >> >> Bem, você pode alterar o banco para latin1. >> Se não puder fazer isso, deve então configurar seu cliente para UTF-8, >> qual é ele?. >> >> Na versão 8.2 você cria bancos latin1 sem problema. >> Na versão 8.3 (se Linux) criando um cluster novo assim: >> >> export LANG=pt_BR.iso-8859-1 >> >> initdb --encoding latin1 -D /usr/local/pgsql/data >>
Qual o resultado de: SELECT ID_TITULAR , NM_TITULAR, SIGLA_SOC, TP_PESSOA FROM TITULAR T WHERE (to_ascii(convert(t.nm_titular, 'LATIN1'), 'LATIN1') = to_ascii(convert(:par, 'LATIN1'), 'LATIN1')) ORDER BY NM_TITULAR; Poderá apresentar erro se, por acaso, seu campo contiver caracteres existentes no UTF-8 mas não no Latin1. Neste caso creio que o melhor seja utilizar a função translate e especificar como converter cada um dos caracteres acentuados. Lembre-se que a função to_ascii funciona apenas para os encodings LATIN1, LATIN2, LATIN9 e WIN1250. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
