[firebase-br] Problemas com campos Numericos
Carlos H. Cantu
listas em warmboot.com.br
Sex Out 18 21:05:36 -03 2019
NUMERIC (15,2) no dialeto 1 é armazenado internamente como double
precision, que garante até 15 digitos de precisão, mas está sujeito
aos "artefatos" inerentes ao armazenamento desse tipo de dado como
ponto flutuante, que não garante que o número recuperado é exatamente
o mesmo que foi armazenado.
Mudar um banco existente de dialeto 1 para 3 simplesmente através de
backup/restore não altera essa característica, ou seja, os campos
existentes continuam tendo a caracteristica de ponto flutuante, pois
não são convertidos automaticamente para o padrão de armazenamento
interno usado nativamente pelo dialeto 3 (que no seu caso seria um
BIGINT).
O recomendável é criar um banco no dialeto 3 via script e fazer um
PUMP dos dados pra ele.
[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
IC> Boa tarde ..
IC> Firebird 2.5 migrado para 3.0 .
IC> Estou tendo problemas com campos "Numeric(15,2)" ...
IC> E esse banco era dialeto 1, e fiz a alteração do dialeto 1 para 3 e
IC> depois fiz o backup e restore ..
IC> Vi que em alguns casos os campos numeric .estão com valores estralhos
IC> e ao tentar fazer um DataPump esta dando problemas
IC> ex:
IC> Uma tabela com valor numeric esta sendo extraida com esse valor :
IC> "1.88451045712187E-305"
IC> INSERT INTO FINBDRDI (ID_BDR, VALOR, CODCTA) VALUES (249627,
IC> 1.88451045712187E-305, '303');
IC> Ocasionando o erro abaixo processar esse sql.
IC> "Arithmetic overflow or division by zero has occurred. arithmetic
IC> exception, numeric overflow, or string truncation. numeric value is out
IC> of range."
IC> O que eu poderia fazer pra ajustar esse problema ? .. existem casos
IC> também que tem valores com o valor 'NAN' .. E consequentemente nao
IC> consigo executar um datapump
IC> porque esses valores nao sao aceitos ..
IC> Desde ja agradeço
IC> Adilson Pazzini .
Mais detalhes sobre a lista de discussão lista