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

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'. Проверяйте недопустимый текст дат перед загрузкой.

Открыть в DBAtlas →

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