“ORA-01843: 无效的月份“问题

今天在使用Oracle SQL时,系统报错,错误提示为:ORA-01843: 无效的月份。

SQL> INSERT INTO plsql101_purchase VALUES

2       ('Product Name 1', 1, '5-NOV-03');

第 2 行出现错误:ORA-01843: 无效的月份

一开始感觉很奇怪:这怎么能有问题呢。排查了好几次都没找出问题来。后来灵机一动:会不会是Oracle的字符集设置问题。我现在使用的是中文ZHS16GBK的字符集,然而我插入的时英文的月份,与中文字符集不相符。

先看Oracle的当前的日期

SQL> SELECT current_date from dual;

CURRENT_DATE

--------------

18-6月 -09

然后修改月份再进行插入操作

1  INSERT INTO plsql101_purchase VALUES

2*      ('Product Name 1', 1, '5-11月-03')

SQL> /

已创建 1 行。

成功插入,问题解决。

因此从本例可以看出Oracle的字符集是很重要的,我们需要认真对待它。

参考:

1、造成“ORA-01843 无效的月份”的一些原因

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐