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万条。 
   
现在给大家介绍一个小技巧,话说在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分钟。
 
posted @ 2019-08-05 16:28  无拘  阅读(4283)  评论(0编辑  收藏  举报
TOP