9i有MERGEMERGE 范例
下面的例子在OE模式下创建一个BONUSES表,BONUS的缺省值为100。然后插入BONUSES表所有有成绩的销售人员(基于OE_ORDERS表的SQLES_REP_ID字段)。最后,人力资源管理人员决定,所有的人员将得到分红。没有销售成绩的员工得到工资的1%的分红,而那些有销售成绩的员工将得到缺省分红以及工资的1%。可以用一条MERGE语句将完成上述修改: CREATE TABLE bonuses (employee_id NUMBER, bonus NUMBER DEFAULT 100); 
INSERT INTO bonuses(employee_id) (SELECT e.employee_id FROM employees e, orders o WHERE e.employee_id = o.sales_rep_id GROUP BY e.employee_id); 
SELECT * FROM bonuses; 
EMPLOYEE_ID BONUS ----------- ---------- 153 100 154 100 155 100 156 100 158 100 159 100 160 100 161 100 163 100 
MERGE INTO bonuses D USING (SELECT employee_id, salary, department_id FROM employees WHERE department_id = 80) S ON (D.employee_id = S.employee_id) WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01 WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus) VALUES (S.employee_id, S.salary*0.01); 
EMPLOYEE_ID BONUS ----------- ---------- 153 180 154 175 155 170 156 200 158 190 159 180 160 175 161 170 163 195 157 95 145 14 170 96 179 62 152 90 169 100 .