MERGE INTO employees e USING (SELECT 101 AS emp_code, 'John Doe' AS emp_name FROM dual) src ON (e.emp_code = src.emp_code) WHEN MATCHED THEN UPDATE SET e.emp_name = src.emp_name WHEN NOT MATCHED THEN INSERT (emp_id, emp_code, emp_name) VALUES (emp_seq.NEXTVAL, src.emp_code, src.emp_name);