Я пытаюсь заставить предложение 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;
Я действительно узнал, как с этим справиться (до того, как я отправил вопрос), но я думаю, что, поскольку это заняло у меня довольно некоторое время, чтобы найти ответ, надеюсь, оставление этого вопроса будет означать, что следующий человек найдет его не так много времени.
Я отправлю ответ через день или около того, но если кто-то другой отправит его в тем временем они получат очки.