[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