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

ORA-01438: Значение превышает точность, допустимую для этого столбца

Oracle

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

В столбец NUMBER записано число, превышающее заданные пределы точности и масштаба. Например, значение с 3-значной целой частью не помещается в столбец NUMBER(4,2).

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

Определение NUMBER(p,s) столбца слишком узкое для данных; результат вычисления больше ожидаемого; десятичный масштаб сокращает число разрядов для целой части (NUMBER(5,3) допускает только 2 целых разряда).

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

Расширьте ёмкость столбца в соответствии с реальным диапазоном данных: ALTER TABLE my_table MODIFY (my_column NUMBER(12,2)); Округляйте значение в приложении или приводите его к масштабу с помощью ROUND/TRUNC. Чтобы найти переполняющую строку, сужайте запрос при тестировании и добавьте проверку входных данных.

Открыть в DBAtlas →

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