0
我是Oracle的新手。我正嘗試使用MERGE INTO方法更新SELECT DISTINCT語句中值的表值。我想根據USING表中的內容有條件地更新表的值。 的什麼,我基本上要一個快速的圖是Oracle合併到(多個連接表)更新集(多個Where語句)返回無效的列規範
MERGE
INTO update_table ut
USING
(SELECT DISTINCT
t1.column_1
,t2.column_2
FROM table_1 t1
INNER JOIN table_2 t2
ON t1.foreign_key = t2.primary_key) st
ON (ut.pk = st.column_1)
WHEN MATCH UPATE
SET(ut.update_column = st.column_2
WHERE st.column_1 = 1
AND st.column_2 = 1
,ut.update_column = st.column_2
WHERE st.column_1 = 2
AND st.column_2 = 2);
然而,當我這樣做,我得到的,我用SET行了無效的列規格錯誤。我怎樣才能解決這個問題,以成功更新表格,最好是ANSI標準?
好了,所以如果我的理解是正確的,這意味着我不能使用其中在這種情況下,語句。我需要擁有正確的數據集,而不是依賴update語句中的where子句。 – Jizzle21013
@ Jizzle21013:如果你願意,你可以包含'ut.column_name = value'的where子句以及更新。但對於源表,最好將它限制在using子句本身中。 –