2012/12/6 Flavio Henrique Araque Gurgel fla...@4linux.com.br
Em 06-12-2012 08:02, Leandro escreveu:
Pessoal, sei que o assunto é recorrente mas não achei nehuma thread que
fica-se claro. Estou usando os clientes pgadmin ou phppgadmin acessando
uma base num servidor Linux. Tanto client_encoding e o server_encoding
estão como UTF8. Quando tento utilizar as funções de texto upper,
lower em um simples select as mesmas não retornam corretamente.
select lower('ÁÃÀ'),upper('áãà'),lower('A')
lower upper lower
ÁÃÀ áãà a
Provavelmente a ordenação (collation) não está correta.
Ou seja ele ignora completamente as funções. Alguém tem alguma dica
para contornar isso usando UTF8?
Qual o valor de lc_collate?
SHOW lc_collate;
O resultado deve ser pt_BR-UTF-8.
Se não for, faça:
SET lc_collate = 'pt_BR-UTF-8';
e teste novamente as funções upper e lower.
OBS: Antigamente usava LATIN1 (que o pessoal desaconselhou a usar) e
não tinha problema.
Porque a ordenação estava provavelmente correta.
[]s
__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Flavio obrigado pela ajuda. Setar o SET lc_collate = 'pt_BR-UTF-8'; não
foi permitido. Mas recriei o banco com o collate correto e resolveu o
problema,
create database teste lc_ctype='pt_BR.utf8' lc_collate='pt_BR.utf8'
template template0;
grato,
Leandro
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral