1、D_TDATE GDK-05030: 日期格式模式在转换整个输入字符串之前结束。 CREATEDATE GDK-05043: 无效的月份
报错sql通常为insert into 表 value (...,to_date(“09/01/2018”),....)
而且to_date对应的日期格式与excle里的格式大不相同,比如如下格式
这是因为oracle有个默认识别时间的格式
1、查询oracle当前会话日期格式:(eg,sqldevelper客户端,每次启动链接,会话格式都会默认。需要重新设置一下)
select value from nls_session_parameters where parameter='NLS_DATE_FORMAT';
默认格式:DD-MON-RR
我们需要把格式进行更改为我们上面的格式
2、转换oracle的日期格式:
alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS';
3、另外我们还需要对excle的格式进行处理
3.1把日期的列使用 =TEXT(AZ5,"yyyy/mm/dd hh:mm:ss")复制出来为一个新列
3.2对新列复制到后面一列,右击选择性粘贴,采用取数值粘贴,删除前面两列数据
4、导入数据。
5、如果导入还是存在to_date报错的问题,即数据库列为date类型,导进去的sql在进行to_date的时候没有进行格式,所以无法导入
这里可以复制新表create table newTable as select * from Table,把newTable的date格式改成字符串格式(varchar2/varchar)
导入数据到新表newTable ,然后再复制新表数据到目标表insert into Table select * from newTable