从一个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分钟。好吧,祝你好运