zoukankan      html  css  js  c++  java
  • 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分钟。 
  • 相关阅读:
    手速太慢QAQ
    最短路总结
    放下
    素材收集
    NOI2018旅游记
    -5
    七月
    德国GG了
    本人自传
    bzoj2369
  • 原文地址:https://www.cnblogs.com/xieon1986/p/2789226.html
Copyright © 2011-2022 走看看