Как насчет этого, внешнее объединение означает, что rid
будет нулевым и, следовательно, потерпит неудачу, и, таким образом, попадет в часть WHEN NOT MATCHED
оператора, если у вас есть один
MERGE INTO target_table tgt
USING ( SELECT t2.ROWID AS rid
, s2.c2
FROM target_table t2
, source_table s2
WHERE t2.c1 (+) = s2.c1
) src
ON (tgt.rowid = src.rid)
WHEN MATCHED THEN
UPDATE SET tgt.c1=src.c2