[firebase-br] Erro em campo "Computed By": Overflow occurred during data type convertion. Convertion erros string "16030"
Gladiston Santana
gladiston.santana em gmail.com
Quarta Outubro 1 17:37:37 -03 2025
Evite inferencias, no seu create table faça assim:
CREATE TABLE ORCAMENTOS (
CODITEM_ALMOX VARCHAR(36),
(...)
VL_UNITARIO NUMERIC(18,4) DEFAULT 0.00 NOT
NULL,
QTDE_ATUAL NUMERIC(18,4) DEFAULT 0.00 NOT
NULL,
VL_TOTAL *NUMERIC(18,4)* COMPUTED BY (
*CAST*(VL_UNITARIO*QTDE_ATUAL) *AS **NUMERIC(18,4)*
),
(...)
);
Ou seja, tenha um tipo antes do 'compute by' e sempre que for lidar com
numeros faça um cast para o mesmo tipo.
Não usar um cast pode permitir que um número inteiro varie entre smallint,
int e bigint, ou seja dinamicamente inferido, mas o cast forçará um tipo
específico para não variar.
No delphi por exemplo, os TFields tem tipos fixos e se houver variação,
especialmente em tamanhos de strings ou tipos numericos, eles podem dar
erro.
Se seus campos numericos permitem nulos, use COALESCE.
Mais detalhes sobre a lista de discussão lista