Discuz教程网

将csv文件用sqlldr导入时,数据格式的问题

[复制链接]
authicon kooness 发表于 2010-10-26 03:39:11 | 显示全部楼层 |阅读模式

各位,我有一csv文件,文件中有若干字段使用的是类似于1998-11-14 16:55:00之类的时间格式。
我在网上搜索了用sqlldr方式导入到数据库里。但是我发现遇到时间格式字段的时候,总是报错,类型不匹配。ORA-01861: literal does not match format string.哪怕把导入的字段直接指定为DATE也不行。
我知道估计要调用TO_DATE之类的函数去转换,但是搜了一下,好像ctl控制文件里没有这种写法的。不知道各位有什么好办法吗?



上一篇:RAC中,使用 crs_stat -t 看到的状态 不断变化?虚拟机中的网卡不稳定,怎么改变呢?
下一篇:哪位高手能解读一下线面的trace文件内容?post info什么意思?
authicon zhuyubei 发表于 2010-10-26 04:16:30 | 显示全部楼层

我自己想了下,在表里增加几个VARCHAR2的字段用来存csv里的时间,然后在用TO_DATE把这些字段转成DATE,赋给原先表里的DATE字段。各位还有什么好的方法吗?
authicon 大大狗 发表于 2010-10-26 05:15:41 | 显示全部楼层

可以先把数据sqlldr到临时表里
再用临时表转到你用的表里
authicon zhuyubei 发表于 2010-10-26 05:59:32 | 显示全部楼层

谢谢
authicon doni 发表于 2010-10-26 06:57:09 | 显示全部楼层

date "YYYY-MM-DD HH24:MI:SS"
authicon zhuyubei 发表于 2010-10-26 08:17:33 | 显示全部楼层

谢谢,楼上的。的确是像你说的那样,直接可以导入了!太棒了。
authicon renxiao2003 发表于 2010-10-26 09:58:40 | 显示全部楼层

CSV是用TAB分割数据的啊。
authicon duolanshizhe 发表于 2010-10-26 10:05:37 | 显示全部楼层

日期格式需要特殊处理的,不然不可能直接插入db中date
authicon doni 发表于 2010-10-26 11:36:29 | 显示全部楼层

仔细读一下文档,就能找到答案的
authicon duolanshizhe 发表于 2010-10-26 13:01:22 | 显示全部楼层

google  sqlldr date
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 18:14

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表