merge into用法小结

时间:2022-06-06 20:24:11

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语句主要是用于:

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

附上测试代码截图:

merge into用法小结

测试结果:

merge into用法小结

更新后:

merge into用法小结

菜鸟成长中。。。