度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 551|回复: 6

[分享] oracle大数据量的批量操作方法之一

[复制链接]

198

主题

1312

帖子

3632

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3632
发表于 2018-7-28 09:55:42 | 显示全部楼层 |阅读模式

在度量快速开发平台中,可能会遇见从一张表中读取数据插入到另外一张表中,还需要判断有的数据就更改,没有的数据就插入,而且可能会有很多数据,比如10万条。按照平台的语法写很有难度,效率很低。
现提供一个使用方法,大家可以参考测试。

merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表;
语法:
MERGE INTO [your table-name] [rename yourtable here]
USING ([write your query here] )[rename your query-sqland using just like a table]
ON ([conditional expression here] AND[...]...)
WHEN MATHED THEN [here you can executesome update sql or something else ]
WHEN NOT MATHED THEN [execute somethingelse here ! ]

示例:

Merge Intoemp_bak  i
Using ( Selectemp_no,Name,salary,bonus From emp)  s
On(i.emp_no=s.emp_no)
When Matched Then
Update Set i.salary=s.salary,i.bonus=s.bonus
When Not Matched Then
Insert (i.emp_no,i.Name,i.salary,i.bonus)Values(s.emp_no,s.Name,s.salary,s.bonus);

如果数据量很大,此sql效率非常高

回复

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
发表于 2018-7-28 10:48:35 | 显示全部楼层
回复

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
发表于 2018-7-28 14:43:25 | 显示全部楼层
不错哈,平常构建过程中经常会遇到这些问题的处理。
回复 支持 反对

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
发表于 2018-7-28 16:57:51 | 显示全部楼层
回复

使用道具 举报

348

主题

3590

帖子

8929

积分

论坛元老

Rank: 8Rank: 8

积分
8929
发表于 2018-7-28 17:00:00 | 显示全部楼层
LZ实在是V5、 霸气、帥
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

542

主题

5919

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
发表于 2018-3-8 11:53:25 | 显示全部楼层

回复

使用道具 举报

328

主题

3738

帖子

8565

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8565
QQ
发表于 2018-3-8 21:34:22 | 显示全部楼层
真牛逼!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2019-6-27 04:36 , Processed in 0.142478 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表