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萬條。
現在給大家介紹一個小技巧,話說在Oracle里有一個很奇特的“表”,名叫Dual。
首先, select '1' from dual ,結果返回1。
其次,
select '1' from dual union select '2' from dual
結果是
1 2
如果這樣,
insert into 表名 (字段1) select '1' from dual union select '2' from dual
這一次就插入了兩條數據。當然,如果全字段插入 那個(字段1)還可以省略掉。
最后的實踐證明,如果循環60萬次Insert,一個小時也執行不完(當然有可能是機器太爛),而拼成1000條Select再插入一次,插入60萬條的時間是20分鍾,而拼成5000條Select再Insert一次,插入60萬條數據的時間是12分鍾。