首页 > 数据库技术 > 详细

大批量数据导入数据库,dbf导入oracle,csv导入oracle

时间:2015-02-05 11:14:38      阅读:403      评论:0      收藏:0      [点我收藏+]

 Excel 07-2003一个工作表最多可有65536最多可有256列Excel 2007及以后版本,一个工作表最多可有1048576行,16384列

一、小批量数据处理:

方法一:用excel可以直接打开dbf或csv文件,数据库表for update,直接把excel表中想要的列值直接复制到pl/sql中 相对应字段。

方法二:若是dbf文件可用dbfplus工具转换成csv文件,打开pl/sql中的 工具>文本导入器,在‘到Oracle的数据’中选择到导入哪个用户下的哪个表,点击左上角‘打开’你已经准备好csv文件,这个动作一般要再重复一次,左侧就是csv’字段’,右侧是导入表的字段和数据类型,选择要导入的对应字段,点‘导入’就可以了。(小批量数据和大批量数据都可以用这个方法,可参考http://blog.163.com/sunhaigang200699%40126/blog/static/121592632010811267359/)

二、超过excel最大行数据:

我在用上面的方法二处理400万左右的数据时,出现了多次卡死现象,用了一天时间才解决。方法如下:

1.准备好compare.csv,放在e:\Data\下,并在该路径下新建一个compare.ctl控制文件、compare.log日志文件compare.bad是坏的行格式不对不能导入)、compare.dis是丢弃的行

2.重点:编辑compare.ctl文件

OPTIONS(BINDSIZE=8388608,READSIZE=8388608,ERRORS=-1,ROWS=50000)

LOAD DATA

INFILE ‘e:\Data\compare.csv‘

BADFILE e:\Data\compare.bad‘

DISCARDFILE ‘e:\Data\compare.dis‘

APPEND

INTO TABLE cc_compare

FIELDS TERMINATED BY ‘,‘

(

com01,

com02,

com03,

com04,

com05,

com06,

com07,

com08)  

注意,数据库中的cc_compare表与compare.csv列是对应的;另外如果com08列有哪个值是空的,该行整条数据都导不进去了,可以不导或新加个值都不为空的列。

(注:rows控制每500000行commit一次,errors控制当有多少行导入出现错误时就停止导入,-1是不管多少行错都不停止)

3.打开cmd执行命令。

C:\>sqlldr  username/password@oracle  control=e:/Data/compare.ctl  log=e:/Data/compare.log 

 

OK!成功!看看你的e:\Data\下吧!

这些我都在用,这些方法不管多大的数据都可以用。



 

大批量数据导入数据库,dbf导入oracle,csv导入oracle

原文:http://blog.csdn.net/m_123hj_520/article/details/43525153

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!