oracle一次插入多條數據


insert into 表名(字段1,字段2) 
select '一','二' from dual         
union all                                 
select '三','四' from dual         
union all                                 
select '五','六' from dual         
union all                                 
select '七','八' from dual         
union all                                 
select '九','十' from dual     
 
從一個CSV文件中讀取所有的數據,並且插入到一個Oracle 數據庫中,並且幾分鍾內完成,大約有60萬條。 
網上有人說了,你可以循環insert然后插入幾千條以后Commit一次,我靠,你自己試試看!! 如果沒試過就不要誤導別人好吧。 
還有人說了, Oracle根本不支持一次多條插入,我靠,你咋不說自己學藝不精呢? 
   
現在給大家介紹一個小技巧,話說在Oracle里有一個很奇特的“表”,名叫Dual。我們就要利用這個Dual來做文章, 
首先,你知道 select '1' from dual 是啥結果嗎? 對了,結果就是返回1。 
其次,你知道 
select '1' from dual 
union 
select '2' from dual 
是啥結果嗎? 對鳥,結果是 
那么,最關鍵的地方來了, 
insert into 表名 (字段1) 
     select '1' from dual 
     union 
     select '2' from dual 
那么這一次就插入了兩條數據。當然,如果全字段插入 那個(字段1)還可以省略掉。 
最后的實踐證明,如果循環60萬次Insert,一個小時也執行不完(當然有可能是機器太爛),而拼成1000條Select再插入一次,插入60萬條的時間是20分鍾,而拼成5000條Select再Insert一次,插入60萬條數據的時間是12分鍾。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM