通过excel导入oracle为Date字段时报错的问题

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

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值