[firebase-br] Tipos de Dados Incompativeis - Oracle

eduardo eduardo em icontroller.com.br
Sex Jul 29 18:47:18 -03 2005


> Bom... é ao contrário... eu pego os dados do Oracle e insiro no Firebird...
> 
> Quando o campo do Oracle é Number e está preenchido com valores muito altos,
> no Firebird, se deixo Numeric ou Decimal, dá um erro, se deixo Float ou
> Double Precision, são truncadas algumas casas.

Puxa vida ! hoje estou meio distraído. Jurava que era de FB para ORACLE.

Bem, nesse caso, você deve ver sua real necessidade de Precision e Scale.
Estes dados, podem estar armazenados como double precision (FLOAT) no 
ORACLE e, em alguns casos, com um número exagerado de casas decimais no 
resultado (sabemos que um simples 4 pode ser aramazenado com 
3,9999999999999999 como float). neste caso você pode ter alguma coisa 
como 2828289292922929,9393938383928283.
Não acredito que a parte inteira vá ser problema, pois o FB lida com 
INT64 que é bastante grande. A combinação Precision/Scale é que pode 
estar limitando.
Desta forma, se no ORACLE houver um campo DECIMAL(N,N) você pode dar um 
CAST como DECIMAL(SUA PRECISION, SUA SCALE) e, assim, forçar a 
compatibilidade com o FireBird.

Para se orientar melhor, pegue uma destas tabelas que estão dando 
problema, e dê SELECT MAX(CAMPO NUMBER). Com este valor em mãos vai 
ficar mais fácil para os nossos MESTRES do TeamFB e outros te 
aconselharem o melhor formato no FB.

Forte Abraço, Eduardo





Mais detalhes sobre a lista de discussão lista