如何高效的将excel导入到oracle?有很多朋友看了我的上一篇倒入sqlserver的文章后发消息问我是否支持oracle..
当然不可以了,但是和SqlServer的bcp对应,oracle也有自身的方法,只是稍微复杂些.
那就是使用oracle的sql*loader功能,而sqlldr只支持类似csv格式的数据,所以要自己把excel转换一下。
实现步骤:
用com组件读取excel-保存为csv格式-处理最后一个字段为null的情况和表头-根据excel结构建表-生成sqlldr的控制文件-用sqlldr命令导入数据
这个性能虽然没有sql的bcp快,但还是相当可观的,在我机器上1万多数据从读取包括转csv并且导入完成也不到4秒,而且导入过程代码比较简单,也同样没有循环拼接sql插入那么难以维护。这里也提个问题:处理csv文件的表头和最后一个字段为null的情况是否可以优化?除了我代码中的例子,我实在想不出其他办法。代码较长,请参考我的blog,同样里面的TransferData函数基本可以直接使用。
http://blog.csdn.net/jinjazz/archive/2008/07/21/2686526.aspx
当然不可以了,但是和SqlServer的bcp对应,oracle也有自身的方法,只是稍微复杂些.
那就是使用oracle的sql*loader功能,而sqlldr只支持类似csv格式的数据,所以要自己把excel转换一下。
实现步骤:
用com组件读取excel-保存为csv格式-处理最后一个字段为null的情况和表头-根据excel结构建表-生成sqlldr的控制文件-用sqlldr命令导入数据
这个性能虽然没有sql的bcp快,但还是相当可观的,在我机器上1万多数据从读取包括转csv并且导入完成也不到4秒,而且导入过程代码比较简单,也同样没有循环拼接sql插入那么难以维护。这里也提个问题:处理csv文件的表头和最后一个字段为null的情况是否可以优化?除了我代码中的例子,我实在想不出其他办法。代码较长,请参考我的blog,同样里面的TransferData函数基本可以直接使用。
http://blog.csdn.net/jinjazz/archive/2008/07/21/2686526.aspx
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货