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语句主要是用于:
两个表匹配时更新操作,不匹配时候插入操作。
附上测试代码截图:
测试结果:
更新后:
菜鸟成长中。。。