DBAtlas · 数据库运维图谱

ORA-01843: not a valid month(无效的月份)

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 中打开 →

同一数据库的其他条目