整行不匹配时的oracle合并语句[重复]
Posted
技术标签:
【中文标题】整行不匹配时的oracle合并语句[重复]【英文标题】:oracle merge statement when entire row not matched [duplicate] 【发布时间】:2015-08-14 10:32:38 【问题描述】:我在 oracle 中有两个表。 一个包含 600000 行,其他临时表包含超过 600000 行。 如果使用合并语句在临时表中可用任何新行,我想从临时表插入到实际表。 (或者还有其他更好的方法吗?) (两个表的结构相同,大约有 15 列,而不是检查一个主键,我想检查所有字段的匹配条件)。
任何人都可以帮忙..
【问题讨论】:
合并似乎是要走的路 嗨,谢谢...你能帮我举一个检查多个字段的例子吗 【参考方案1】:你不能像往常一样使用 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 绝对是要走的路。
【讨论】:
以上是关于整行不匹配时的oracle合并语句[重复]的主要内容,如果未能解决你的问题,请参考以下文章