程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 大批量數據導入數據庫,dbf導入oracle,csv導入oracle

大批量數據導入數據庫,dbf導入oracle,csv導入oracle

編輯:Oracle教程

大批量數據導入數據庫,dbf導入oracle,csv導入oracle


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\下吧!

這些我都在用,這些方法不管多大的數據都可以用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved