從一個CSV文件中讀取全部的數據,而且插入到一個Oracle數據庫中,而且幾分鐘內完成,大約有60萬條。
網上有人說了,你能夠循環insert而後插入幾千條之後Commit一次,我靠,你本身試試看!!若是沒試過就不要誤導別人好吧。
還有人說了,Oracle根本不支持一次多條插入,我靠,你咋不說本身學藝不精呢?
如今給你們介紹一個小技巧,話說在Oracle裏有一個很奇特的「表」,名叫Dual。咱們就要利用這個Dual來作文章,
首先,你知道 select '1' from dual 是啥結果嗎? 對了,結果就是返回1。數據庫
其次,你知道code
select '1' from dual
it
unionio
select '2' from dualselect
是啥結果嗎? 對鳥,結果是 循環
1
技巧
2nio
那麼,最關鍵的地方來了, 數據
insert into 表名 (字段1)
文件
select '1' from dual
union
select '2' from dual
那麼這一次就插入了兩條數據。固然,若是全字段插入 那個(字段1)還能夠省略掉。最後的實踐證實,若是循環60萬次Insert,一個小時也執行不完(固然有多是機器太爛),而拼成1000條Select再插入一次,插入60萬條的時間是20分鐘,而拼成5000條Select再Insert一次,插入60萬條數據的時間是12分鐘。好吧,祝你好運