2013/12/11 Anderson Loyola <[email protected]>

> Sim, seria um bug, tentei de várias formas, mas não tem jeito, alterei
> para numeric mesmo.
>
> Obrigado pela força.
>
>
É um bug mesmo. Até já sei a solução. Vou ver se discuto com isso com os
hackers (discuti um pouco já no IRC).

E quanto ao tipo money. Evite usá-lo ao máximo. Ele é meio problemático.
Fique com numeric e seja feliz.

=D



>
> Em 10 de dezembro de 2013 11:04, Matheus de Oliveira <
> [email protected]> escreveu:
>
>>
>>
>>
>> 2013/12/10 Anderson Cristian <[email protected]>
>>
>>> Estou com um problema sério com JSON no postgresql, quando converto um
>>> select para JSON por EX: "SELECT to_json(row) FROM tabela row" até ae tudo
>>> bem, mas quando eu tento buscar um valor dentro do JSON que seja MONEY ele
>>> retorna o seguinte erro: Token "R" is invalid.
>>>
>>> O PostGreSQL cria um JSON da seguinte forma quando o campo é money.
>>> SELECT '{"salario": R$ 1.000,00}'::json
>>>
>>> Alguém já passou por isso? Tem uma solução?
>>>
>>>
>> humm.... Fiz um teste bem simples aqui, e parece que estamos falando de
>> um bug mesmo:
>>
>> postgres=# SELECT to_json(a) FROM (VALUES(1000::money)) a(salario);
>>         to_json
>> -----------------------
>>  {"salario":$1,000.00}
>> (1 row)
>>
>> postgres=# SELECT to_json(a)->'salario' FROM (VALUES(1000::money))
>> a(salario);
>> ERROR:  invalid input syntax for type json
>> DETAIL:  Token "$" is invalid.
>> CONTEXT:  JSON data, line 1: {"salario":$...
>>
>> Veja que ele gera:
>>
>>  {"salario":$1,000.00}
>>
>> Mas creio que o correto seria:
>>
>>  {"salario":1000}
>>
>> ou
>>
>>  {"salario":"$1,000.00"}
>>
>> Vou fazer uma pesquisa e se encontrar algo posto aqui. Uma solução
>> temporária é converter de money para numeric:
>>
>> SELECT to_json(row) FROM (SELECT foo, bar, salario::numeric AS salario
>> FROM tabela) row
>>
>> Atenciosamente,
>> --
>> Matheus de Oliveira
>> Analista de Banco de Dados
>> Dextra Sistemas - MPS.Br nível F!
>> www.dextra.com.br/postgres
>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> *Anderson Loyola*
> http://andersonloyola.com.br <http://www.andersonloyola.com.br>
>  Usuário Linux N: 391848
> http://linuxcounter.net/user/391848.html<http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=391848>
> Telefone: (41) 3015-2048
> Celular: (41) 8722-7774
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a