[已解決] ORA-30926 無法取得來源表格中可信的資料列集

在 Oracle 中使用 MERGE 或是 JOIN 時有可能出現以下錯誤訊息:
    
ORA-30926: unable to get a stable set of rows in the source tables
    

很可能是因為有多筆資料完全一樣,只要將 USING 後的查詢語法加上 DISTINCT 將結果去重複即可
    
MERGE INTO table_1 t
USING
    (SELECT distinct table_2.column_2
                   , table_2.column_3
                   , table_3.column_4
     FROM table_2,
          table_3
     WHERE table_2.column_3 = table_3.column_3) t1
ON (t.column_1 = t1.column_1)
WHEN MATCHED THEN
    UPDATE
    SET column_2 = t1.column_2;
    



參考資料:
Oracle - How to Troubleshoot ORA-30926 Errors? (Doc ID 471956.1)

留言