一些基础性的数据,需要手动导入,也就是从excel表中导入到oracle sql develop 的oracle中。出现了"无效的月份",也就是格式和数据库要的数据格式不一样。
然后我就改呀改,按照数据库的样式将excel表中涉及到日期的格式都改了,但是还是报这个错误。在用sql语句在 oracle sql develop插入数据的时候,涉及到日期时间的格式,会进行一次to_date的转换,也就是在你导入的时候,会自动将你的excel中的格式用函数to_date转换成oracle想要的格式。就是这种格式: 21-9月-16
当我手动的改成这种形式的时候,导入依然报错。问了问周围的同事,他们也给了我很多建议,转换了很多很多的格式。
另一个项目组是用oracle进行开发的,虽然我都见过,但是没有说过话,他来之后,直接给我将原表的数据导出,然后对我说“标准格式,复制粘贴吧”。
为什么我就没有想到呢?导出来一份呢?
由于我在excel表中更改的格式是文本或者是数字,日期等等的格式,导致格式不是oracle想要的。
我们可以用sql语句查询一下oracle当前默认的日期显示格式:
select value from nls_session_parameters where parameter='NLS_DATE_FORMAT';
假如查询到的日期为DD-MON-RR,然后他会进行日期的转换,例如:to_date('2016/6/6','DD-MON-RR'),这样格式是不匹配的,所以就出现了无效的月份。
在从excel导入oracle sql develop中,生成的sql语句中如下,在对日期操作没有进行转换的,于是报错。