我得到一個ORA-30926錯誤。我對此進行了研究,發現這通常是由USING
子句中指定的查詢中的重複項引起的。ORA-30926 - 合併狀態
問題是我在初步刪除重複項並存儲在temperory表(temp_distinct
)中,這反過來我在MERGE
中指的是。這裏是我的代碼片段:
MERGE INTO name_test nt
USING (select name from temp_distinct) s
ON (1=1)
WHEN MATCHED
THEN UPDATE SET nt.fn = s.name, nt.LN = s.name
這裏是我的表的結構:
NAME_TEST
:
FN LN
----- -----
Ruc Rag
Ruc Ran
Sam Kum
Ruc Ran
Ruc Kum
Ran Dev
Rag Agar
Rag Ran
TEMP_DISTINCT
:
FN NUMB NAME NUM
----- ---- ----- ---
Sam 1 Mark 1
Rag 2 Steve 2
Dev 3 John 3
Kum 4 Dave 4
Ruc 5 Mich 5
Agar 6 Dean 6
Ran 7 Phil 7
因此,大家可以看到有在USING
條款中沒有重複。我試圖替換NT.FN = S.NAME
和NT.LN = S.NAME
。
基本上我想在FN
和LN
從NAME_TEST
表不同的名字從TEMP_DISTINCT
替換表名。最後的輸出應該象下面這樣:
FN LN
------ ------
Mich Steve
Mich Phil
Mark Dave
Mich Phil
Mich Dave
Phil John
Steve Dean
Steve Ran
這是個好主意。根據顯示的輸入,合併操作不是作者需要的。 – zaratustra
非常感謝! !!!!!烏爾的建議解決了我的問題:)謝謝恩 – user3360094