DBAtlas · Atlas de operações de banco de dados

22003: numeric_value_out_of_range

PostgreSQL

O que significa?

Um valor numérico está fora do intervalo permitido pelo tipo de destino. Por exemplo, gravar um valor maior que 2 bilhões em uma coluna integer, ou um número grande demais para uma coluna numeric(5,2).

Por que acontece?

Ultrapassagem dos limites de smallint/integer/bigint; ultrapassagem da precisão/escala de numeric(p,s); overflow aritmético; uma soma/produto excedendo a capacidade do tipo; uma sequence atingindo o limite superior do seu tipo.

Como resolver

Altere a coluna/o parâmetro para um tipo mais amplo (bigint em vez de integer, aumente a precisão do numeric): ALTER TABLE my_table ALTER COLUMN my_column TYPE bigint; Arredonde (ROUND) ou valide o valor de acordo com a regra de negócio. Se um cálculo intermediário estourar, calcule a expressão como numeric. Para overflow de sequence, amplie o tipo.

Abrir no DBAtlas →

Mais entradas deste banco