Re: [pgbr-geral] Converter resultados numéricos de e n_US.utf-8 para pt_BR.utf-8 na consulta.
Obrigado Osvaldo e Euler. Acabei voltando para a opção de ajustar lc_numeric, por haver o problemas de limitação de casa de unidades. Apesar do PostgreSQL ajustar as variáveis de dezenas e centesimos a partir de postgresql.conf, deveria haver uma outra forma de utilizar essas variáveis em pg/plsql, por exemplo, para resolver o problema, ao invés de modificar o ambiente, como por exemplo set lc_numeric . Agradeço a atenção, Bruno. 2009/5/19 Euler Taveira de Oliveira eu...@timbira.com Bruno Simioni escreveu: Não gostaria de utilizar as funções que determinam variáveis de ambiente para isso, e gostaria da conversão via funções ou to_char, ou expressões regulares, ou outras. Por que fazer da maneira difícil? Qual o problema em ajustar o lc_numeric no postgresql.conf? Se ele não pode ser ajustado, por que não fazer isso na própria sessão (set lc_numeric to 'pt_BR')? Acho que está indo pela maneira mais difícil para uma coisa tão simples. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Converter resultados numéricos de e n_US.utf-8 para pt_BR.utf-8 na consulta.
Bruno Simioni escreveu: Apesar do PostgreSQL ajustar as variáveis de dezenas e centesimos a partir de postgresql.conf, deveria haver uma outra forma de utilizar essas variáveis em pg/plsql, por exemplo, para resolver o problema, ao invés de modificar o ambiente, como por exemplo set lc_numeric . Há. euler=# \! cat /tmp/teste CREATE OR REPLACE FUNCTION public.teste() RETURNS void LANGUAGE plpgsql AS $function$ declare i text; begin select to_char(123456.789, '999G999G999D99') into i; raise notice 'i: %', i; set local lc_numeric to 'en_US'; select to_char(123456.789, '999G999G999D99') into i; raise notice 'i: %', i; end; $function$ uler=# show lc_numeric; lc_numeric - pt_BR.UTF-8 (1 registro) euler=# select teste(); NOTA: i: 123.456,79 NOTA: i: 123,456.79 teste --- (1 registro) euler=# show lc_numeric; lc_numeric - pt_BR.UTF-8 (1 registro) -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Converter resultados numéricos de e n_US.utf-8 para pt_BR.utf-8 na consulta.
Boa tarde, senhores. Após procurar na documentação e em algumas listas de discussão, não consegui encontrar nada referente a minha dúvida, e então irei postar aqui. Meu ambiente é basicamente o PostgreSQL 8.3, com lc_numeric=en_US.UTF8. Para consultas, para campos do tipo numeric: SELECT to_char(val, '999G999G999G999D99'),' ') FROM table; Obtenho resultados do tipo: 1,000,000.00 Quero fazer uma simples conversão do resultado, para que retorne no padrão pt_BR.UTF-8, e então eu obtenha: 1.000.000,00 Não gostaria de utilizar as funções que determinam variáveis de ambiente para isso, e gostaria da conversão via funções ou to_char, ou expressões regulares, ou outras. Ajudas? Bruno Simioni ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Converter resultados numéricos de e n_US.utf-8 para pt_BR.utf-8 na consulta.
2009/5/18 Bruno Simioni brunosimi...@gmail.com: Boa tarde, senhores. Após procurar na documentação e em algumas listas de discussão, não consegui encontrar nada referente a minha dúvida, e então irei postar aqui. Meu ambiente é basicamente o PostgreSQL 8.3, com lc_numeric=en_US.UTF8. Para consultas, para campos do tipo numeric: SELECT to_char(val, '999G999G999G999D99'),' ') FROM table; Obtenho resultados do tipo: 1,000,000.00 Quero fazer uma simples conversão do resultado, para que retorne no padrão pt_BR.UTF-8, e então eu obtenha: 1.000.000,00 Não gostaria de utilizar as funções que determinam variáveis de ambiente para isso, e gostaria da conversão via funções ou to_char, ou expressões regulares, ou outras. Tente algo do tipo: bdteste=# SELECT to_char(1234567.89,'999.999.999,V99'); to_char - 1.234.567,89 (1 registro) Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Converter resultados numéricos de e n_US.utf-8 para pt_BR.utf-8 na consulta.
Bruno Simioni escreveu: Não gostaria de utilizar as funções que determinam variáveis de ambiente para isso, e gostaria da conversão via funções ou to_char, ou expressões regulares, ou outras. Por que fazer da maneira difícil? Qual o problema em ajustar o lc_numeric no postgresql.conf? Se ele não pode ser ajustado, por que não fazer isso na própria sessão (set lc_numeric to 'pt_BR')? Acho que está indo pela maneira mais difícil para uma coisa tão simples. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral