The
MERGE statement was introduced in Oracle 9i to conditionally insert or update data depending on its presence, a process also known as an "upsert". The MERGE statement reduces table scans and can perform the operation in parallel if required.- Syntax
Consider the following example where data from the
HR_RECORDS table is merged into the EMPLOYEES table.MERGE INTO emp e
USING dept h
ON (e.deptno = h.deptno)
WHEN MATCHED THEN
UPDATE SET e.sal = h.sal
WHEN NOT MATCHED THEN
INSERT (10,'XYZ')
VALUES (h.empno, e.ename);