MERGE <hint> INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
DELETE <where_clause>
WHEN NOT MATCHED THEN <insert_clause>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
DELETE <where_clause>
WHEN NOT MATCHED THEN <insert_clause>
[LOG ERRORS <log_errors_clause> <reject limit <integer | unlimited>];
MERGE INTO USERINFO a
USING (
SELECT '1' as UNAME
FROM dual
) b
ON (a.UNAME = b.UNAME)
WHEN MATCHED THEN
UPDATE SET a.ADDR = 'ddd', a.UTC = 1234567
WHEN NOT MATCHED THEN
INSERT (a.ADDR, a.UTC, a.UNAME) VALUES ('aaa', 7654321, '1');