Я пытаюсь заставить предложение 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;
РЕДАКТИРОВАТЬ
На самом деле я узнал, как с этим справиться (до того, как задал вопрос), но я думаю, что, поскольку мне потребовалось довольно много времени, чтобы найти ответ, надеюсь, оставление этого вопроса будет означать, что следующий человек найдет его не совсем так. много времени.
Я опубликую ответ через день или около того, но если кто-то другой отправит его тем временем, он получит баллы.