当前位置: 代码迷 >> Oracle管理 >> Insert语句出错,该怎么解决
  详细解决方案

Insert语句出错,该怎么解决

热度:60   发布时间:2016-04-24 06:03:14.0
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 '))方便。
  相关解决方案