1. 程式人生 > >merge into 從一個表的一列資料複製到另一個表的一列 oracle 中報ora-30926 無法在源表中獲得穩定的行

merge into 從一個表的一列資料複製到另一個表的一列 oracle 中報ora-30926 無法在源表中獲得穩定的行

2)在merge的時候也遇到一個問題,出現”ORA-30926: 無法在源表中獲得一組穩定的行。“這個問題原因比較簡單,因為在merge into時需要設定一個key值,會根據這個key值來決定merge into的操作(update還是insert into),所以要求在merge時這個key值是唯一的。所以要先從臨時表中選出全部資料而且key值是唯一的。語句例項:

select a.* from MERGE_TEST_TMP a where a.mid = (select max(MERGE_TEST_TMP.Mid) from MERGE_TEST_TMP where MERGE_TEST_TMP.MKEY=a.mkey) order by a.Mid desc; 

解決完這兩個問題,調整也就告一段落了。over!