0

我正在尝试合并 oracle 中的两个表,我使用的查询是

merge into sales_history sh
 using sales s
 on (s.prod=sh.prod and s.month=sh.month)
 when matched 
      update set sh.amount = s.amount
 when not matched 
      insert (sh.prod,sh.month,sh.amount)
      values (s.prod,s.month,s.amount);

每当我执行此查询时,我都会收到以下错误:

ORA-00905 缺少关键字。

谁能帮我这个。

4

1 回答 1

2
 when matched 
      update set sh.amount = s.amount
 when not matched 
      insert (sh.prod,sh.month,sh.amount)

您的MERGE语法不正确。您缺少THEN关键字。

文档中:

合并更新子句 ::=

WHEN MATCHED THEN
   UPDATE SET ...

合并插入子句 ::=

WHEN NOT MATCHED THEN
   INSERT
于 2015-11-10T07:30:18.157 回答