oracle MERGE

用SCOTT/TIGER登录。


MERGE是oracle 9i中引入的,一般就是UPDATE或者INSERT,从10g开始可以进行DELETE。


创建表EMP1,并清空数据:

CREATE TABLE EMP1 AS SELECT * FROM EMP;

TRUNCATE TABLE EMP1;

使用MERGE:

MERGE INTO EMP1 T1 USING EMP T2 ON (T1.EMPNO = T2.EMPNO)
WHEN MATCHED THEN
  UPDATE SET T1.SAL = T2.SAL * 2  --没有分号
WHEN NOT MATCHED THEN
  INSERT  VALUES (T2.EMPNO, T2.ENAME, T2.JOB, T2.MGR,
        T2.HIREDATE, T2.SAL, T2.COMM, T2.DEPTNO);  --有分号
COMMIT;

运行一次:



再次运行:



使用DELETE:

MERGE INTO EMP1 T1 USING EMP T2 ON (T1.EMPNO = T2.EMPNO)
WHEN MATCHED THEN
  UPDATE SET T1.SAL = T2.SAL * 2  --没有分号
  DELETE WHERE T1.JOB = 'CLERK'   --没有分号
WHEN NOT MATCHED THEN
  INSERT  VALUES (T2.EMPNO, T2.ENAME, T2.JOB, T2.MGR,
        T2.HIREDATE, T2.SAL, T2.COMM, T2.DEPTNO);  --有分号
COMMIT;


运行前先

TRUNCATE TABLE EMP1;

然后运行MERGE INTO,结果:



再次运行,结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值