当整行不匹配时,oracle合并语句

时间:2015-08-14 10:32:38

标签: oracle oracle11g

我在oracle中有两个表。 一个包含600000行,其他临时表包含超过600000行。 如果使用merge语句在登台表中有任何新行可用,我想从登台表插入实际表。 (或者有更好的方法吗?) (两个表都是相同的结构,大约15列,而不是检查一个主键,我想检查所有字段的匹配条件)。

任何人都可以帮忙......

1 个答案:

答案 0 :(得分:2)

你不能按照正常情况使用MERGE:

MERGE INTO bonuses b
 USING (
   SELECT employee_id, salary, dept_no
   FROM employee
   WHERE dept_no =20) e
ON  (b.employee_id = e.employee_id
 AND b.dept_no = e.dept_no)
WHEN MATCHED THEN
   UPDATE SET b.bonus = e.salary * 0.1
WHEN NOT MATCHED THEN
   INSERT (b.employee_id, b.bonus)
   VALUES (e.employee_id, e.salary * 0.05)
   WHERE (e.salary > 40000);

但是在" ON"子句只需加入你想要的所有列。

使用MERGE绝对是可行的方法。

相关问题