Ошибка команды слияния Oracle отсутствует ключевое слово
Я пытаюсь объединить две таблицы в 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 отсутствует ключевое слово.
Кто-нибудь может мне с этим помочь.
1 ответ
Решение
when matched
update set sh.amount = s.amount
when not matched
insert (sh.prod,sh.month,sh.amount)
Ваш синтаксис MERGE неверен. Вы скучаете по THEN
ключевое слово.
Из документации:
merge_update_clause:: =
WHEN MATCHED THEN
UPDATE SET ...
merge_insert_clause:: =
WHEN NOT MATCHED THEN
INSERT