ALLOWNOOPUPDATES | 不允許更新

有效對象

Replicat

說明

使用 ALLOWNOOPUPDATES 和 NOALLOWNOOPUPDATES 來控制 Replicat 回應 no-op 作業的方式。無作業是指對目標表格沒有影響的作業。以下是一些可能發生此情況的範例。

使用 NOALLOWNOOPUPDATES 時,只有當來源和目標表格未定義索引鍵,或 Replicat 未使用 KEYCOLS 時,Replicat 才會中止。在此情況下,在目標表格未定義唯一索引鍵,而且會在任何來源資料欄執行更新作業時,會發生類似下列的錯誤:

Encountered an update for target table TELLER, which has no unique key defined. KEYCOLS can be used to define a key. Use ALLOWNOOPUPDATES to process the update without applying it to the target database. Use APPLYNOOPUPDATES to force the update to be applied using all columns in both the SET and WHERE clause.

您可以使用參數 APPLYNOOPUPDATES 來強制套用 UPDATE。APPLYNOOPUPDATES 會覆寫 ALLOWNOOPUPDATES。如果同時指定兩者,Replicat 會套用來源和目標表格有索引鍵資料欄的更新。

如果在使用 HANDLECOLLISIONS 或 INSERTMISSINGUPDATES 參數時指定 ALLOWNOOPUPDATES,且 Oracle GoldenGate 具有所有目標索引鍵值,則 Oracle GoldenGate 會使用 SET 子句中表格的所有資料欄和 WHERE 子句 (呼叫 APPLYNOOPUPDATES 行為) 來套用 UPDATE。這是必要的,因此 Oracle GoldenGate 可以判斷資料列是否存在或遺漏。如果遺漏,Oracle GoldenGate 會將 UPDATE 轉換成 INSERT。

預設

NOALLOWNOOPUPDATES

語法

ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES