Ошибки · Решение
Oracle ORA-01400: cannot insert NULL
INSERT формирует строку без обязательного значения или явно передаёт NULL.
Короткий ответ
ORA-01400 означает попытку записать NULL в объект/колонку, где NULL не допускается. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.
Что означает ошибка
INSERT формирует строку без обязательного значения или явно передаёт NULL.
Возможные причины
- Приложение не заполнило NOT NULL поле.
- Маппинг ORM потерял значение до INSERT.
- Миграция сделала колонку обязательной, но старая ветка приложения не знает об этом.
Что проверить
- Возьмите имя колонки из текста ORA-01400.
- Проверьте bind-параметр для этой колонки прямо перед execute.
- Сверьте текущую схему с версией приложения и миграциями.
Безопасные шаги
- Передавайте корректное ненулевое значение.
- Если значение должно генерироваться БД, настройте DEFAULT/identity/trigger осознанно.
- Меняйте nullability только после подтверждения модели данных и влияния на существующие строки.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если ORA-01400 появился после релиза, сравните deployed schema migration и версию приложения на всех инстансах.
Похожие ошибки
- /errors/oracle-ora-00001/
- /errors/oracle-ora-00054/
- /errors/oracle-ora-00904/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.