Oracle - WITH CLAUSE => MERGE? (Синтаксическая ошибка)

Я пытаюсь заставить предложение WITH работать с слиянием в Oracle, но по какой-то причине я не могу заставить его работать. Я уверен, что это что-то очевидное, но я просто этого не видел.

-- behold, the wonders of fake data
WITH X AS ( 
SELECT 
  'moo' AS COW, 
  'woof' AS CAT, 
  (SELECT MAX( DECIBELS ) FROM ANIMALIA WHERE COW = 'moo' ) AS DECIBELS
FROM DUAL )
MERGE INTO ANIMALIA D 
USING X
WHEN MATCHED THEN
    UPDATE SET D.COW = X.COW;

EDIT

Я действительно узнал, как с этим справиться (до того, как я отправил вопрос), но я думаю, что, поскольку это заняло у меня довольно некоторое время, чтобы найти ответ, надеюсь, оставление этого вопроса будет означать, что следующий человек найдет его не так много времени.

Я отправлю ответ через день или около того, но если кто-то другой отправит его в тем временем они получат очки.

12
задан cwallenpoole 13 July 2011 в 03:45
поделиться