日期:2014-05-17  浏览次数:21027 次

ORA-01843: 无效的月份,百度过没解决...
oracle客户端(操作系统英文win2003)注册表里:
NLS_LANGUAGE='SIMPLIFIED CHINESE.ZHS16GBK'
NLS_DATE_FOEMAT='YYYY-MM-DD'

plsql连接数据库,select * from nls_session_parameters;
1 NLS_LANGUAGE SIMPLIFIED CHINESE
2 NLS_TERRITORY CHINA
3 NLS_CURRENCY ¥
4 NLS_ISO_CURRENCY CHINA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT YYYY-MM-DD
8 NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
9 NLS_SORT BINARY
10 NLS_TIME_FORMAT HH.MI.SSXFF AM
11 NLS_TIMESTAMP_FORMAT YYYY-MM-DD HH24:MI:SS.FF
12 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
13 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
14 NLS_DUAL_CURRENCY ¥
15 NLS_COMP BINARY
16 NLS_LENGTH_SEMANTICS BYTE

运行部署的程序总是显示:
ORA-01843: 无效的月份

------解决方案--------------------
具体是哪个语句出错呢?

NLS_DATE_FORMAT YYYY-MM-DD这样的话,月份的字符串不能是中文的,否则to_date会出错。如果月份是中文,NLS_DATE_FORMAT要改成 YYYY-MON-DD
------解决方案--------------------
NLS_DATE_FOEMAT='YYYY-MM-DD'

这个设置先去掉 看看
------解决方案--------------------
数据是不是都是这格式?