ORA-01843: Недопустимый месяц
OracleЧто это значит?
При преобразовании текста в DATE часть, соответствующую месяцу, не удалось интерпретировать как допустимый месяц. Обычно формат даты не соответствует формату данных.
Почему возникает?
В TO_DATE не передана маска формата, и NLS_DATE_FORMAT сессии не соответствует данным; перепутаны день и месяц (путаница DD/MM и MM/DD); различие языка/локали (в названиях месяцев); повреждённый или неожиданный текст даты.
Как исправить
Всегда передавайте явный формат в вызовах TO_DATE: TO_DATE('2026-07-04', 'YYYY-MM-DD'). Для текста с названиями месяцев указывайте язык: TO_DATE(str, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH'). При необходимости задайте формат сессии: ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'. Проверяйте недопустимый текст дат перед загрузкой.
Ещё по этой СУБД
- ORA-12899Значение слишком велико для столбца
- ORA-30926Не удаётся получить стабильный набор строк в исходных таблицах
- ORA-08103Объект больше не существует
- ORA-14400Вставленный ключ секционирования не соответствует ни одной секции
- ORA-01536Превышена квота пространства для табличного пространства
- direct path readОжидание: сессия читает блоки напрямую в PGA в обход buffer cache
- latch: cache buffers chainsОжидание: конкуренция за latch cache buffers chains