DBAtlas · Атлас эксплуатации баз данных

22003: numeric_value_out_of_range

PostgreSQL

Что это значит?

Числовое значение выходит за допустимый для целевого типа диапазон. Например, запись значения больше 2 миллиардов в столбец integer или слишком большого числа в столбец numeric(5,2).

Почему возникает?

Превышение пределов smallint/integer/bigint; превышение точности/масштаба numeric(p,s); арифметическое переполнение; сумма/произведение, превышающие ёмкость типа; последовательность, достигшая верхней границы своего типа.

Как исправить

Измените тип столбца/параметра на более широкий (bigint вместо integer, увеличьте точность numeric): ALTER TABLE my_table ALTER COLUMN my_column TYPE bigint; Округляйте (ROUND) или проверяйте значение согласно бизнес-правилу. Если переполняется промежуточное вычисление, вычисляйте выражение как numeric. При переполнении последовательности расширьте тип.

Открыть в DBAtlas →

Ещё по этой СУБД