CREATE OR REPLACE PROCEDURE SP_EMP3(SP_STARTDATE DATE, SP_ENDDATE DATE)
IS
BEGIN
  MERGE INTO EMP2 A
  USING(SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
        FROM EMPEMP2@IKE B    
        WHERE B.HIREDATE >= SP_STARTDATE
              AND B.HIREDATE < SP_ENDDATE ) B
  ON(A.EMPNO=B.EMPNO  )
  WHEN MATCHED THEN 
    UPDATE SET --A.EMPNO = B.EMPNO,注意更新的数据不能含有上面连接条件字段EMPNO
               A.ENAME = B.ENAME,
               A.JOB = B.JOB,
               A.MGR = B.MGR,
               A.HIREDATE = B.HIREDATE,
               A.SAL = B.SAL,
               A.COMM = B.COMM,
               A.DEPTNO = B.DEPTNO
  WHEN NOT MATCHED THEN 
    INSERT (A.EMPNO,
            A.ENAME,
            A.JOB,
            A.MGR,
            A.HIREDATE,
            A.SAL,
            A.COMM,
            A.DEPTNO)
    VALUES(B.EMPNO,
           B.ENAME,
           B.JOB,
           B.MGR,
           B.HIREDATE,
           B.SAL,
           B.COMM,
           B.DEPTNO);
  COMMIT;
END;