Excel 07-2003一個工做表最多可有65536,行最多可有256列;Excel 2007及之後版本,一個工做表最多可有1048576行,16384列。sql
1、小批量數據處理:數據庫
方法一:用excel能夠直接打開dbf或csv文件,數據庫表for update,直接把excel表中想要的列值直接複製到pl/sql中 相對應字段。oracle
方法二:如果dbf文件可用dbfplus工具轉換成csv文件,打開pl/sql中的 工具>文本導入器,在‘到Oracle的數據’中選擇到導入哪一個用戶下的哪一個表,點擊左上角‘打開’你已經準備好csv文件,這個動做通常要再重複一次,左側就是csv’字段’,右側是導入表的字段和數據類型,選擇要導入的對應字段,點‘導入’就能夠了。(小批量數據和大批量數據均可以用這個方法,可參考工具
2、超過excel最大行數據:spa
我在用上面的方法二處理400萬左右的數據時,出現了屢次卡死現象,用了一天時間才解決。方法以下:.net
1.準備好compare.csv,放在e:\Data\下,並在該路徑下新建一個compare.ctl控制文件、compare.log日誌文件、compare.bad是壞的行(格式不對不能導入)、compare.dis是丟棄的行。日誌
2.重點:編輯compare.ctl文件excel
OPTIONS(BINDSIZE=8388608,READSIZE=8388608,ERRORS=-1,ROWS=50000)orm
LOAD DATAget
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\下吧!
這些我都在用,這些方法無論多大的數據均可以用。