MERGE को "एकाधिक तालिकाओं" की आवश्यकता नहीं है, लेकिन इसे स्रोत के रूप में एक क्वेरी की आवश्यकता है। कुछ इस तरह काम करना चाहिए:
MERGE INTO mytable d
USING (SELECT 1 id, 'x' name from dual) s
ON (d.id = s.id)
WHEN MATCHED THEN UPDATE SET d.name = s.name
WHEN NOT MATCHED THEN INSERT (id, name) VALUES (s.id, s.name);
वैकल्पिक रूप से आप इसे PL/SQL में कर सकते हैं:
BEGIN
INSERT INTO mytable (id, name) VALUES (1, 'x');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
UPDATE mytable
SET name = 'x'
WHERE id = 1;
END;