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分钟。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值