The following examples show the correct use of the DEFAULT function within the MERGE statement.
MERGE INTO emp USING VALUES (100, 'cc', 200, 3333) AS emp1 (empnum, name, deptno, sal) ON emp1.empnum=emp.s_no WHEN MATCHED THEN UPDATE SET sal=DEFAULT WHEN NOT MATCHED THEN INSERT VALUES (emp1.empnum, emp1.name, emp1.deptno, emp1.sal); MERGE INTO emp USING VALUES (100, 'cc', 200, 3333) AS emp1 (empnum, name, deptno, sal) ON emp1.empnum=emp.s_no WHEN MATCHED THEN UPDATE SET sal=DEFAULT(emp.sal) WHEN NOT MATCHED THEN INSERT VALUES (emp1.empnum, emp1.name, emp1.deptno, emp1.sal); USING (empno INTEGER, name VARCHAR(50), salary INTEGER) MERGE INTO employee AS t USING VALUES (:empno, :name, :salary) AS s(empno, name, salary) ON t.empno=s.empno WHEN MATCHED THEN UPDATE SET salary=s.salary WHEN NOT MATCHED THEN INSERT (empno, name, salary) VALUES (s.empno, s.name, s.salary);