Para conseguir isso você tem que fazer o dumpall do seu banco, criar um novo
cluster e restaurar os dados.

Para criar um cluster como C voce pode utilizar:
./initdb --no-locale -D /tmp/teste

Ele cria um cluster no /tmp/teste com o encoding em C, dependendo da sua
distribuição dai voce para o PostgreSQL e move os dados criados para os
diretórios corretos.

Lembro que quando criar um banco usar o encoding, se não cria como C. :)

Att,
ChIcO



2009/7/27 Tiago Adami <[email protected]>

> Ok, obrigado pela correção. Realmente dei a resposta de bate-pronto sem
> consultar os manuais, baseando-se apenas na minha própria experiência (que
> neste caso foi insuficiente).
>
> Eu li e reli as suas referências [1] e [2], e pelo o que entendi é que se o
> locale padrão configurador for igual a 'C' ou 'POSIX' é possível criar
> bancos com encoding diferente do padrão, e desde que se copie o banco
> 'template0'. É só isso, ou existe outra condição para tal (isso somente na
> versão 8.4)?
>
> Sobre a v.8.3, segundo sua documentação [1]:
>
> *"If you have selected C or POSIX locale, you can create a database with a
> different character set"*
>
> A pergunta é: como mudar o locale do cluster para que isso seja possível na
> versão 8.3?
>
>
> [1]
> http://www.postgresql.org/docs/8.3/static/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED
>
> --
> Tiago J. Adami
> Dois Vizinhos - Paraná - Brasil
>
>
> 2009/7/27 Euler Taveira de Oliveira <[email protected]>
>
> Tiago Adami escreveu:
>> > 2) Provavelmente você criou o cluster na versão 8.3/8.4 como UTF8 ou
>> > outro encoding. A partir da 8.3, todos os bancos dentro de um cluster
>> > devem possuir o mesmo encoding, então você não conseguirá criar um banco
>> > com outra página de códigos.
>> >
>> s/A partir da 8.3/Só o 8.3/
>>
>> O 8.4 permite que você cria bancos de dados com diferentes configurações
>> regionais. Aconselho ler [1] e [2] para entender o que é permitido e o que
>> não é.
>>
>> euler=# create database foo encoding = 'latin1' lc_collate =
>> 'pt_BR.ISO-8859-1' lc_ctype = 'pt_BR.ISO-8859-1' template = template0;
>> CREATE DATABASE
>> euler=# create database bar encoding = 'SQL_ASCII' lc_collate = 'C'
>> lc_ctype =
>> 'C' template = template0;
>> CREATE DATABASE
>> euler=# \l
>>                                   Lista dos bancos de dados
>>   Nome    | Dono  | Codificação |    Collation     |      Ctype       |
>> Privilégios de acesso
>>
>> -----------+-------+-------------+------------------+------------------+-----------------------
>>  bar       | euler | SQL_ASCII   | C                | C                |
>>  euler     | euler | UTF8        | pt_BR.UTF-8      | pt_BR.UTF-8      |
>>  foo       | euler | LATIN1      | pt_BR.ISO-8859-1 | pt_BR.ISO-8859-1 |
>>  foobar    | euler | UTF8        | pt_BR.UTF-8      | pt_BR.UTF-8      |
>>  postgres  | euler | UTF8        | pt_BR.UTF-8      | pt_BR.UTF-8      |
>>  template0 | euler | UTF8        | pt_BR.UTF-8      | pt_BR.UTF-8      |
>> =c/euler
>>                                                                       :
>> euler=CTc/euler
>>  template1 | euler | UTF8        | pt_BR.UTF-8      | pt_BR.UTF-8      |
>> =c/euler
>>                                                                       :
>> euler=CTc/euler
>> (7 rows)
>>
>>
>> [1] http://www.postgresql.org/docs/8.4/static/sql-createdatabase.html
>> [2] http://www.postgresql.org/docs/8.4/static/multibyte.html
>>
>>
>> --
>>  Euler Taveira de Oliveira
>>  http://www.timbira.com/
>> _______________________________________________
>> 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
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a