आप WITH क्लॉज का उपयोग कहीं भी नहीं कर सकते, लेकिन SELECT स्टेटमेंट में। दस्तावेज यहां देखें। :
तो, आप कुछ ऐसा कर सकते हैं (11g परीक्षण किया गया):
MERGE INTO animalia d
USING (WITH X AS
(SELECT 'moo' AS COW, 'woof' AS CAT,
(SELECT MAX( DECIBELS )
FROM ANIMALIA
WHERE COW = 'moo' ) AS DECIBELS
FROM DUAL )
SELECT * FROM X) q ON (1 = 1)
WHEN MATCHED THEN UPDATE SET d.cow = q.cow||' and more';