當源表中不存在的目標表中存在記錄時,我們希望設置IS_DEL位= 1。Oracle MERGE不匹配,然後更新可能嗎?
是否可以使用WHEN NOT MATCHED子句使用MERGE語句,但是使其執行UPDATE?
當試圖這樣做時,我得到一個「ORA-00905:缺少關鍵字」消息。
MERGE
INTO AMEPSA.ENTERPRISE_LOCATION trg
USING (
SELECT C.LOCATION_KEY as LOCATION_KEY
FROM AMEPSA.ENTERPRISE_LOCATION C
INNER JOIN AMESTAGE.VW_LOCATION L ON C.REC_SRC_KEY_CD = L.LOCATION_ID
WHERE C.CURR_REC_IND = 'Y'
) src
ON (trg.LOCATION_KEY = src.LOCATION_KEY)
WHEN NOT MATCHED THEN UPDATE
SET trg.IS_DEL = 1
「WHEN NOT MATCH」子句只支持「THEN INSERT」嗎?
看看:https://stackoverflow.com/questions/10539627/when-doing-a-merge-in-oracle-sql-how-can-i-update-rows-that-arent-matched-in- t –
'WHEN MATCHED THEN UPDATE'更新匹配的行。當沒有匹配時,你會期望哪個行會影響'UPDATE'? –
如果沒有匹配,你會更新什麼? – Sal