E como vou saber se o caracter está ou não dentro do enconding.

Em Seg, 2008-03-17 às 14:51 -0300, Osvaldo Rosario Kussama escreveu:
> 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

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a