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

Insert语句出错
insert   into   test_person   values
( 'CA ', 'Charlene ', 'Atlas ', '01-FEB-2002 ');
ERROR   位于第   2   行:
ORA-01843:   无效的月份

怎么回事?
最后的日期字段的数据类型为date

------解决方案--------------------
select to_date( '2007/02/02 ', 'yyyy/mm/dd ') from dual;
结果是:2007-02-02

你可以把2007/02/02换成其他的形式,能转化就可以写进去
比如换成:2007-02-02,20070202,02-02-2007
需要注意的是后面的yyyy/mm/dd要对应前面的 /可以换成-
------解决方案--------------------
lz的写法,插入的是英文日期,那么你的ORACLE字符集的类型必须是NLS_DATE_LANGUAGE = American ,这时可以插入:
insert into t values ( 'CA ', 'Charlene ', 'Atlas ',to_date( '01-FEB-2002 ', 'dd-mon-yyyy '));
一般我们插入日期用insert into t values(to_date( '2002-02-01 ', 'yyyy-mm-dd '))方便。