DBAtlas · Atlas de operações de banco de dados

ORA-01843: not a valid month

Oracle

O que significa?

Ao converter texto em DATE, a parte do mês não pôde ser interpretada como um mês válido. Geralmente o formato de data não corresponde ao formato dos dados.

Por que acontece?

Nenhuma máscara de formato passada ao TO_DATE e o NLS_DATE_FORMAT da sessão não corresponde aos dados; dia e mês trocados (confusão DD/MM vs MM/DD); uma diferença de idioma/locale (nos nomes dos meses); texto de data corrompido ou inesperado.

Como resolver

Sempre passe um formato explícito nas chamadas TO_DATE: TO_DATE('2026-07-04', 'YYYY-MM-DD'). Para textos com nomes de meses, especifique o idioma: TO_DATE(str, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH'). Defina o formato da sessão se necessário: ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'. Valide os textos de data inválidos antes de carregar.

Abrir no DBAtlas →

Mais entradas deste banco