Ошибка 22003 PostgreSQL: значение вне диапазона типа | PGLens.

Ошибка PostgreSQL 22003 (numeric_value_out_of_range)

Ошибка 22003 (numeric_value_out_of_range) означает, что числовое значение выходит за допустимый диапазон типа данных. PostgreSQL отклоняет операцию, когда результат не помещается в целевой тип – при вставке, приведении или арифметике.

Частые причины

  • Значение превышает диапазон типа (например, число больше 32767 в колонке smallint).
  • Для numeric(precision, scale) целая часть длиннее, чем допускает precision минус scale.
  • Переполнение при арифметике или приведении к меньшему типу.

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

  1. Определите тип колонки и сопоставьте с записываемым значением:
  2. \d orders
  3. Приведите значение к типу нужной емкости или расширьте тип колонки:
  4. ALTER TABLE orders ALTER COLUMN total TYPE bigint;
  5. Для numeric увеличьте точность, если не хватает разрядов целой части:
  6. ALTER TABLE orders ALTER COLUMN price TYPE numeric(12, 2);

Проверьте PGLens
на своих данных

Подключите PGLens к своим экземплярам и получите структурированную картину нагрузки вместо разрозненных данных из логов и системных представлений.

  • Картина нагрузки по подключенным экземплярам в динамике
  • Ранжированный список самых тяжелых запросов
  • Моделирование индексов с расчетом выигрыша в стоимости запроса

    * - обязательные поля

    Напишите нам
    Удобнее с телефона?
    Сканируйте QR