Plsql 在Oracle中使用merge语句删除数据

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,

如何仅使用oracle合并删除数据。。。 我正在使用以下代码:

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)
;