大批量資料匯入資料庫,dbf匯入oracle,csv匯入oracle,dbfcsv

來源:互聯網
上載者:User

大批量資料匯入資料庫,dbf匯入oracle,csv匯入oracle,dbfcsv

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

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



 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.