读书人

Insert语句出错,该怎么解决

发布时间: 2011-12-27 22:22:55 作者: rapoo

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 '))方便。

读书人网 >oracle

热点推荐