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