日期:2014-05-16  浏览次数:20919 次

Oracle字符编码问题
最近刚学习Oracle数据库遇到一个小问题,就是英文格式的date数据不能插入,例如:“01-MAY-99”,只能插入中文格式的,大牛们求解,我能不能想插入什么格式就插入什么格式?或者改成这种英文格式,求解!

------解决方案--------------------
SQL code

[TEST@myoracle] SQL>select to_date('01-MAY-99','dd-mon-yy','nls_date_language=american') from dual;

TO_DATE('01-MA
--------------
01-5月 -99

[TEST@myoracle] SQL>select to_date('01-MAY-99','dd-mon-yy') from dual;
select to_date('01-MAY-99','dd-mon-yy') from dual
               *
第 1 行出现错误:
ORA-01843: 无效的月份

------解决方案--------------------
to_date('01-MAY-99','dd-mon-yy','nls_date_language=american') 
将 '01-MAY-99' 按照 american 格式转换,无论你的数据库是什么字符集的都会成功。

探讨
菜鸟有点不懂,能解释下么?