Onde o UPPER não funciona o initdb usou o padrão do SO que é LC_COLLATE
= en_US.UTF-8.
O cliente já testei com UTF8 e LATIN1 acessando este banco e ambos dão
problema.
Bene
Luigi Castro Cardeles escreveu:
Olá,
essas regras são controladas pelas variáveis LC_COLLATE e LC_CTYPE
(que são definidas no initdb).
http://www.postgresql.org/docs/8.3/static/sql-createdatabase.html
Você tem que tomar cuidado também com a codificação do cliente onde
você está digitando...
Qual o valor das mesmas no caso onde o upper não retorna o esperado?
Luigi Castro Cardeles
2009/4/28 Prof. Benedito A. Cruz <[email protected]
<mailto:[email protected]>>
Caros
Recentemente tive problemas com uma aplicação que funcionava em um
banco LATIN1 mas dava problemas em um banco UTF-8. Depois de pesquisar
um pouco detectei o seguinte comportamento no PG.
1) Num banco criado como LATIN1:
postgres=# \l
List of databases
Name | Owner | Encoding
-----------+-----------+----------
xpto | xxxadm | LATIN1
postgres | postgres | LATIN1
template0 | postgres | LATIN1
template1 | postgres | LATIN1
(4 rows)
postgres=# \c xpto
You are now connected to database "xpto".
xpto=# select UPPER('a');
upper
-------
A
(1 row)
xpto=# select UPPER('á');
upper
-------
Á
(1 row)
2) Num banco criado como UTF8:
postgres=# \l
List of databases
Name | Owner | Encoding
-----------+-----------+----------
xpto | xxxadm | LATIN1
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(4 rows)
postgres=# \c xpto
You are now connected to database "xpto".
xpto=# select UPPER('a');
upper
-------
A
(1 row)
xpto=# select UPPER('á');
upper
-------
á
(1 row)
O problema é que no segundo caso a aplicação dá erro porque usa
UPPER
e LOWER nas queries, que retornam com problemas. O mesmo problema
ocorre
se o banco "xpto" está em UTF8. A solução foi transferir o UPPER e
LOWER
para a aplicação e retirar da query.
Pergunta: o comportamento dessas funções não deveria seguir o
encoding do banco ao qual se está conectado?
--
Benedito A. Cruz
Centro de Referência em Informação Ambiental - CRIA
email [email protected] <mailto:[email protected]>
fone 55 19 3288 0466
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
_______________________________________________
pgbr-geral mailing list
[email protected]
<mailto:[email protected]>
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
This message has been scanned for viruses and
dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
believed to be clean.
------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
Benedito A. Cruz
Centro de Referência em Informação Ambiental - CRIA
email [email protected]
fone 55 19 3288 0466
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral