2009/11/2 mvleal <[email protected]>:

> Como faço para utilizar a vírgula como separador decimal nos campos
> definidos como "numeric(15,2)" por exemplo.

Voce não faz, não pode.

> Já tentei de tudo com o "LC_NUMERIC", mas quando vou inserir o valor 1,23 dá
> erro. Tenho que substituir a vírgula por ponto e transformar o número em
> 1.23;

AFAIK o parâmetro de configuração LC_NUMERIC apenas controla funções
de formatação [1]

# \pset tuples_only
# \pset border 0
# \x

# SHOW LC_NUMERIC;
lc_numeric en_US.utf-8

SELECT TO_CHAR('1.99'::numeric,'99D99') AS "Meu valor numerico em en_US:";
Meu valor numerico em en_US:   1.99
                                                 ^^
Repare o ponto.

# SHOW LC_NUMERIC;
lc_numeric pt_BR.utf-8

SELECT TO_CHAR('1.99'::numeric,'99D99') AS "Meu valor numerico em pt_BR:";
Meu valor numerico em pt_BR:   1,99
                                                ^^
Repare a virgula.

No console do psql voce também poderia utilizar a variável
numericlocale para alternar entre formatos de saída baseado no sistema
e no locale:

postgres=# \pset numericlocale
Formato numérico baseado no idioma está desabilitado.
postgres=# SELECT '1.99'::NUMERIC;
numeric 1.99

postgres=# \pset numericlocale
Exibindo formato numérico baseado na configuração regional.
postgres=# SELECT '1.99'::NUMERIC;
numeric 1,99

1) http://www.postgresql.org/docs/8.4/interactive/functions-formatting.html


Abraço!

-Leo
-- 
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
http://www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a