merge into用法小结

CREATE OR REPLACE PROCEDURE PRO_ZXC(O_NO OUT NUMBER,O_NOTE OUT NUMBER)AS
BEGIN
O_NO:=1;
MERGE INTO QQQ Q
USING (SELECT * FROM SCOTT.EMP )MP  --这里之前写错成:USING (SELECT * FROM SCOTT.EMP   MP)
ON(Q.EMPNO=MP.EMPNO)
WHEN MATCHED THEN
UPDATE SET Q.COMM=123 --这里之前在123后面加了分号
WHEN NOT MATCHED THEN
INSERT (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES(MP.EMPNO,MP.ENAME,MP.JOB,MP.MGR,MP.HIREDATE,MP.SAL,MP.COMM,MP.DEPTNO);----注意写法,不是insert into
COMMIT;
EXCEPTION
WHEN OTHERS THEN
O_NO:=-1;
ROLLBACK;
END PRO_ZXC;

易错点写在了语句的--后面备注了;

MERGR INTO语句主要是用于:

两个表匹配时更新操作,不匹配时候插入操作。

附上测试代码截图:

 

测试结果:

更新后:

菜鸟成长中。。。

 

posted @ 2018-11-13 15:11  戴着面具唱着喜剧  阅读(182)  评论(0编辑  收藏  举报