Re: [pgbr-geral] Converter resultados numéricos de e n_US.utf-8 para pt_BR.utf-8 na consulta.

2009-05-19 Por tôpico Bruno Simioni
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.

2009-05-19 Por tôpico Euler Taveira de Oliveira
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.

2009-05-18 Por tôpico Bruno Simioni
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-05-18 Por tôpico Osvaldo Kussama
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.

2009-05-18 Por tôpico Euler Taveira de Oliveira
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