Oracle merge 合并数据

本文介绍了Oracle9i中的一项重要特性:通过MERGE语句实现有条件地插入或更新数据。这种方式可以有效避免不必要的删除和重新插入操作,提高数据处理效率。文章提供了具体的SQL语句示例,展示了如何在两张表之间进行数据同步。

Oracle 9i引入的功能
-- 按照 指定的条件执行插入或者更新操作
-- 如果满足条件的行存在 执行更新操作;否则执行插入操作
--1避免多次重复执行插入和删除操作
--2提高效率而且使用方便
--3在数据仓库应用中经常使用
两个表的列可以是不一样的 并不一定是一样的数据结构

语法如下

Oracle merge 合并数据

此处以 emp表为例

create table emp1 as select empno,ename,job,mgr from emp;
create table emp2 as select * from emp;

merge into emp2 e2
using emp1 e1 on (e1.empno=e2.empno)
when matched then
update set e2.ename=e1.ename,e2.job=e1.job
when not matched then
insert (empno,ename,job) values (e1.empno,e1.ename,e1.job);

表一种的 只要关联的id对应的数据有变化 就会同步 数据增加 e2就会增加

转载于:https://blog.51cto.com/12941821/2056002

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值