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