Plsql 在Oracle中使用merge语句删除数据
如何仅使用oracle合并删除数据。。。 我正在使用以下代码:Plsql 在Oracle中使用merge语句删除数据,plsql,Plsql,如何仅使用oracle合并删除数据。。。 我正在使用以下代码: Merge into target_table using source_tablle on (...) when matched then delete 但是我在最后一行得到一个缺少关键字的错误您最后的合并缺少UPDATE子句。 让我们看一个合并示例 现在我们有了一个示例数据结构,让我们进行一些合并: MERGE INTO bonuses b USING ( SELECT employee_id, salary,
Merge
into
target_table
using
source_tablle
on (...)
when matched
then delete
但是我在最后一行得到一个缺少关键字的错误您最后的合并缺少UPDATE子句。
让我们看一个合并示例
现在我们有了一个示例数据结构,让我们进行一些合并:
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)
WHEN MATCHED THEN
UPDATE SET b.bonus = e.salary * 0.1
DELETE WHERE (e.salary < 40000)
;
因此,此命令使用以下语法:
合并到表/视图中
使用表/视图
条件
当匹配时
更新集列..表达式
删除WHERE条件
我想我暗示的是,您缺少updateset子句以及DELETE条件。我建议继续研究合并语法。
**编辑:**SQLFiddle回来了
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)
WHEN MATCHED THEN
UPDATE SET b.bonus = e.salary * 0.1
DELETE WHERE (e.salary < 40000)
;