Gleyson,

Obrigado pela resposta. Eu sei que não há diferença nesses valores, porém o
usuário final (na verdade um sistema externo que consulta uma view no nosso
banco de dados) queria ver os dados com as 3 casas decimais. Conseguimos
fazer no isso no Oracle 10g mas não teve o mesmo efeito no 9i. O client que
eu usei nos dois casos é o mesmo, apenas apontando para um outro banco
diferente. Você sabe se alguma configuração no servidor pode afetar essa
exibição? Ou se há mesmo alguma diferença de tratamento entre o 9i e o 10g?

De qualquer forma, já convenci o usuário de que o valor está certo, e se ele
estiver esperando um número real, tanto faz o jeito como o Oracle retorna
eles (com ou sem casas decimais). Só teria problema se tivessem casas
decimais e ele usasse uma variável inteira ou se ele trata isso como string,
o que acho não ser o caso.

-- 
Thiago Delfim
Oracle 9i Database Certified Professional
Oracle 10g Database Certified Professional
tdel...@gmail.com (MSN)
Campinas/SP
(19) 8204-2681 / 9111-1439

2009/4/4 Gleyson Melo <gleysonm...@gmail.com>

>   Fala Thiago, tudo em paz?
> Vamos começar com duas perguntas: 120 é igual a 120,000? 120 é igual a 0x78
> (hexadecimal)?
>
> Matematicamente sim. Então porque "parecem" diferentes? A diferença é a
> representação do número.
> A representação do número é uma string. O que está diferente não é o
> número,
> é o formato, como a gente pode ver pelo exemplo:
>
> SQL> select cast(120 as number(10,3)) as numero from dual;
>
> NUMERO
> ----------
> 120
>
> SQL> col numero for 999D999
> SQL> select cast(120 as number(10,3)) as numero from dual;
>
> NUMERO
> --------
> 120,000
>
> SQL>
>
> Isso é configuração a nível de cliente.
>
> Espero ter ajudado.
>
> Um abraço.
>
> 2009/3/31 Thiago Delfim <tdel...@gmail.com <tdelfim%40gmail.com>>
>
> > Pessoal,
> > Algúem já teve algum problema desse tipo:
> >
> > select cast(120 as number(10,3)) from dual;
> >
> > No Oracle 9i retorna: 120
> > No oracle 10g retorna: 120,000
> >
> > É isso mesmo? Existem diferenças no CAST entre as duas versões do Oracle?
> >
> > Estou usando CAST para que uma VIEW retorne os números no formato
> > NUMBER(10,3). Fiz com CAST no Oracle 10 e funcionou como eu queria, mas
> no
> > Oracle 9 não. Como eu posso ter o mesmo efeito no Oracle 9 já que o CAST
> > tem
> > comportamento diferente?
> >
> > --
> > Thiago Delfim
> > Oracle & SQL Server Database Administrator
> > Oracle 9i Database Certified Professional
> > tdel...@gmail.com <tdelfim%40gmail.com> <tdelfim%40gmail.com> (MSN)
> > Campinas/SP
> > (19) 8204-2681 / 9111-1439
> > Sent from Campinas, São Paulo, Brazil
> > Rodney Dangerfield - "I haven't spoken to my wife in years. I didn't want
> > to interrupt her."
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> Atenciosamente,
> Gleyson Melo
> Oracle Database 10g Administrator Certified Professional
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a