【问题标题】:ORA-01843: not a valid month : TO_DATE('12-JUN-02','DD-MON-YY')ORA-01843: 无效月份:TO_DATE('12-JUN-02','DD-MON-YY')
【发布时间】:2014-02-25 09:17:18
【问题描述】:

我在插入过程中遇到了问题。问题来了:

INSERT INTO SALES_ORDER_A4 (ORDERNO , CLIENTNO , ORDERDATE , DELYADDR , SALESMANNO , DELYTYPE , BILLYN , DELYDATE, ORDERSTATUS)
SELECT 'O19008' ,
       'C00005' ,
       to_date('24-MAY-02','DD-MON-YY'),
       'Delhi' ,
       'S00004' ,
       'F' ,
       'N' ,
       to_date('26-MAY-02','DD-MON-YY') ,
       'In Process'
FROM DUAL
UNION ALL
SELECT 'O19001' ,
       'C00001' ,
       to_date('12-JUN-02','DD-MON-YY') ,
       'Delhi' ,
       'S00001' ,
       'F' ,
       'N' ,
       to_date('20-JUN-02','DD-MON-YY') ,
       'In Process'
FROM DUAL
UNION ALL
SELECT 'O19002' ,
       'C00002' ,
       to_date('25-JUN-02','DD-MON-YY'),
       'Delhi' ,
       'S00002' ,
       'P' ,
       'N' ,
       to_date('27-JUL-02','DD-MON-YY') ,
       'Cancelled'
FROM DUAL

我在短语 *to_date('12-JUN-02','DD-MON-YY' )* 遇到了一个例外:

ORA-01843: 月份无效

我的导师找不到问题,这是什么问题?

【问题讨论】:

标签: sql oracle


【解决方案1】:

这主要是因为NLS_DATE_LANGUAGE没有正确设置。

首先检查值:

select * from v$nls_parameters where parameter like '%DATE%'

如果NLS_DATE_LANGUAGE 的值不是American,则将其更改为:

alter session set nls_date_language='American';

然后再试一次。

【讨论】:

  • 如何在不改变 nls_date_language 值的情况下执行语句?
猜你喜欢
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多