oracle存储过程 使用游标 比对临时表和业务表两张表 相同数据找出来 做标记 在插入临时表中

2025-03-23 03:23:28
推荐回答(1个)
回答(1):

使用merge into就可以了。

示例

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
DELETE WHERE (S.salary > 8000)
WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus)
VALUES (S.employee_id, S.salary*.01)
WHERE (S.salary <= 8000);