读书人

oracle一次安插多条数据

发布时间: 2012-08-13 13:21:53 作者: rapoo

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?是啥结果吗? 对鸟,结果是?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分钟。??

读书人网 >其他数据库

热点推荐