从一个CSV文件中读取所有的数据,并且插入到一个Oracle数据库中,并且几分钟内完成,大约有60万条。

网上有人说了,你可以循环insert然后插入几千条以后Commit一次,我靠,你自己试试看!!如果没试过就不要误导别人好吧。

还有人说了,Oracle根本不支持一次多条插入,我靠,你咋不说自己学艺不精呢?

现在给大家介绍一个小技巧,话说在Oracle里有一个很奇特的“表”,名叫Dual。我们就要利用这个Dual来做文章,

首先,你知道 select '1' from dual 是啥结果吗? 对了,结果就是返回1。

其次,你知道

select '1' from dual

union all

select '2' from dual

是啥结果吗? 对鸟,结果是

1

2

那么,最关键的地方来了,

insert into 表名 (字段1)

select '1' from dual

union all

select '2' from dual

那么这一次就插入了两条数据。当然,如果全字段插入 那个(字段1)还可以省略掉。

下面一个具体例子:

insert into doc_data (code,id,value,state)

select '13','川A','成都市公安局交通警察支队车辆管理所',0 from dual

union all select '13','川B','绵阳市公安局交通警察支队车辆管理所',0 from dual

union all select '13','川C','自贡市公安局交通警察支队车辆管理所',0 from dual

union all select '13','川D','攀枝花市公安局交通警察支队车辆管理所',0 from dual

最后的实践证明,如果循环60万次Insert,一个小时也执行不完(当然有可能是机器太烂),而拼成1000条Select再插入一次,插入60万条的时间是20分钟,而拼成5000条Select再Insert一次,插入60万条数据的时间是12分钟。

祝你好运。

oracle 虚拟表 多行,Oracle使用虚拟表dual一次插入多条记录【摘录】相关推荐

  1. oracle表自动模拟多条数据,Oracle使用虚拟表dual一次插入多条记录

    Oracle使用虚拟表dual一次插入多条记录 BEGIN generate_tmpsht; execute immediate 'insert into SHTSUPPLIERRATE (suppl ...

  2. oracle常用插入一条语句,Oracle:用一条 INSERT 语句批量插入多条记录

    用一条 INSERT 语句批量插入多条记录,实例如下: 先建立这样一个表 T: SQL> DESC T Name                       Null?    Type ---- ...

  3. mysql 插入多行_MySQL使用INSERT插入多条记录

    MySQL使用INSERT插入多条记录,应该如何操作呢?下面就为您详细介绍MySQL使用INSERT插入多条记录的实现方法,供您参考. 看到这个标题也许大家会问,这有什么好说的,调用多次INSERT语 ...

  4. oracle最快访问行,Oracle技术网—在Oracle快速进行数据行存在性检查

    在Oracle快速进行数据行存在性检查 当在应用程序的业务逻辑中需要检查一个外键是否有相关的主键时,往往使用Select Count(*)类型的SQL语句.这是一个很显而易的方法,但却不是最快的方法. ...

  5. oracle查出连续5行,Oracle期末考试复习题2

    复习题 一.填空题: 1. Oracle EnterpriseManager是一个基于 B/S的框架系统. 2.Oracle数据库的存储结构分为物理结构和逻辑结构. 3.在游标或者游标变量打开后还没有 ...

  6. oracle导出表中某天数据命令,Oracle数据库使用命令行导入导出数据表及数据内容(本地、远程)...

    一.本机导入导出 1.数据库导出命令,导出用户userA下的表结构和数据: exp 用户名/密码@服务名 owner=用户名 file=导出文件指定存储路径 full=y 2.数据库导入命令,将use ...

  7. java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...

    packagecom.hy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;import ...

  8. oracle 一行转多行,oracle 一行变多行

    1.正则表达式 SELECT distinct T.MY_ID, REGEXP_SUBSTR(T.MY_VALUE, '[^,]', 1, LEVEL) --返回第level次匹配的结果 FROM M ...

  9. php怎么创建表命令行,laravel创建数据表(使用命令行结合代码)

    下面由Laravel框架教程栏目给大家介绍laravel 创建数据表,希望对需要的朋友有所帮助! 虽然可以直接在数据库中创建数据表,但是不便于以后项目的迁移.现使用命令行结合代码的方式来进行生成. 1 ...

最新文章

  1. Qt分析:Qt中的两种定时器
  2. wireshark相关协议详解和nc命令建立对话
  3. 计算机二级选择题复习整理(公共基础部分)
  4. Apollo进阶课程⑭ | Apollo自动定位技术——三维几何变换和坐标系介绍
  5. pppoe拨号的外网ip无法ping通_【思唯网络学院】 五大网络概念:IP地址、子网掩码、网关、DHCP服务和PPPoE拨号...
  6. autojs 如何获取控件的desc_owchart教程三:如何添加成交量?
  7. Windows系统利用5次shift维权漏洞复现
  8. 在CentOs 5.1中使用rpm安装NGINX+php+mysql(二)
  9. 51Nod-1062 序列中最大的数【序列计算+打表】
  10. IIS Web负载均衡的几种方式
  11. 最小圆覆盖(随机增量法模拟退火法)
  12. redis的key_value截图深入学习
  13. 原来做浏览器这么简单
  14. south plus soul /index.php 南+入口检测
  15. 1044 火星数字(C语言)
  16. Maya2022安装教程
  17. kafka reassign 限速_高速限速有了新规矩!公路限速标志设计规范即将施行
  18. 51单片机 AT24C02 PROTEUS 读写程序 源码
  19. uc显示无服务器连接,ucenter安装心得和通信失败,同步登陆失败采坑以及解决方法...
  20. java word 图片不显示_POI用addPicture插入图片到word里面无法显示

热门文章

  1. 给时光以生命,而不是给生命以时光--2018年终总结
  2. 获取汉字拼音首字母和五笔首字母
  3. 考察思维的灵活性,僵化
  4. qemu-system-x86_64: warning: host doesn‘t support requested feature: CPUID.80000001H:ECX.svm [bit 2]
  5. 安防系统的定义及相关组成部分详解
  6. 转载:解决采集UTF-8网页空格变成问号乱码
  7. 【CF 513F2】
  8. 爬虫(三):爬取西刺高匿代理
  9. TI官网注册账号一直卡人机识别问题
  10. Linux内核如何私闯进程地址空间并修改进程内存