次の例は、ON、WHEN MATCHED、またはWHEN NOT MATCHED句でソース テーブルとターゲット テーブル以外のテーブルを参照しているので、失敗します。
次の例は、テーブルt4は、派生ソース テーブルsでもターゲット テーブルt1でもないので、失敗します。
MERGE INTO t1 USING (SELECT x2,y2, z3 FROM t2, t3 WHERE y2=10) AS s ON x1=y2 AND t4.x4=z2 WHEN MATCHED THEN UPDATE SET z1=10 WHEN NOT MATCHED THEN SELECT (y2, z2, x2);
次の例は、テーブルt3は、派生ソース テーブルsでもターゲット テーブルt1でもないので、失敗します。USINGのソース テーブル サブクエリーにt3が指定されていますが、ON句ではソース テーブルとターゲット テーブルだけを参照できるという制限に違反しています。
MERGE INTO t1 USING (SELECT x2,y2, z3 FROM t2, t3 WHERE y2=10) AS s ON x1=y2 AND t3.x4=z2 WHEN MATCHED THEN UPDATE SET z1=10 WHEN NOT MATCHED THEN INSERT (y2, z2, x2);