0
我有一個臨時表,重新加載定期。此表中的數據必須轉到目標表(結構完全相同),但是,如果我有重複的值,它必須檢查上次加載的數據並更新目標表。基於列驗證合併表
實施例:
TMP_DP_REGIAO
SG NOME LOADING_DATE
AM RG_1102 19-FEB-14
RO RG_1103 19-FEB-14
AP RG_1104 19-FEB-14
TO RG_1105 19-FEB-14
RO RG_1106 19-FEB-14
後加載的,該數據應該去TB_DP_REGIAO
(即正如我所說,具有相同的結構)。
的一點是:
如果SG
在TMP
在TB
已經存在,SQL必須驗證如果這個記錄在TMP
具有比TB
更大LOADING_DATE
。如果是這樣,更新TB
。否則,忽略它。
有人可以幫助解決這個問題嗎?
在此先感謝!
謝謝!完美解決了我的問題! :) –
當我第二天運行它,當P.LOADING_DATE提前一天,我得到一個'SQL錯誤:ORA-30926:無法在源表中獲得一組穩定的行。它對我說'刪除任何非確定性條款並重新發布dml.'。你知道發生了什麼嗎?查詢似乎對我來說確實很好。 –
根據這個其他的SO帖子(http://stackoverflow.com/questions/2337271/ora-30926-unable-to-get-a-stable-set-of-rows-in-the-source-tables),這個可能是由於'TMP_DP_REGIAO'在'SG'字段上有重複(我認爲'SG'是關鍵字)。嘗試檢查重複項... – Emmanuel