刪除錯誤

有效對象

擷取與 Replicat

說明

使用 DDLERROR 參數來處理來源和目標系統上的 DDL 錯誤。選項可用於 Extract 和 Replicat。

擷取的 DDLERROR

使用 DDLERROR 參數的「擷取」選項來處理 Extract 所找到之物件上找不到描述資料的錯誤。

預設

異常中止

語法

DDLERROR [RESTARTSKIP <number_of_skips>] [RETRYDELAY <seconds>] [SKIPTRIGGERERROR <number_of_errors>]

RESTARTSKIP <number_of_skips>

讓 Extract 在啟動時略過並忽略特定數目的 DDL 作業,以避免 Extract 因錯誤而異常中止。依照預設,DDL 錯誤會導致 Extract 異常中止,因此不會略過任何作業。有效值為 1 到 100000。

若要將略過的作業相關資訊寫入 Extract 報表檔案,請使用 DDLOPTIONS 參數搭配 REPORT 選項。

SKIPTRIGGERERROR <number_of_errors>

(Oracle) 讓 Extract 在啟動時略過並忽略由 DDL 觸發器所導致的特定 DDL 錯誤數目。有效值從 1 到 100000。

SKIPTRIGGERERROR 會在 RESTARTSKIP 選項之前勾選。如果 Extract 因觸發程式錯誤而略過 DDL 作業,則該作業不會計入 RESTARTSKIP 規格中。

Replicat 的 DDLERROR

使用 DDLERROR 參數的 Replicat 選項來處理將 DDL 套用至目標資料庫時所發生的錯誤。使用 DDLERROR 選項時,您可以預設方式處理大部分的錯誤,例如停止處理,也可以以特定方式處理其他錯誤。您可以在同一個參數檔中使用多個 DDLERROR 執行處理來處理預期的所有錯誤。

預設

異常中止

語法

DDLERROR
{<error> | DEFAULT} {<response>}
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY <seconds>]

{<error> | DEFAULT} {<response>}

<error>

指定此 DDLERROR 敘述句要處理的明確 DDL 錯誤。

DEFAULT

為任何沒有明確 DDLERROR 陳述式的 DDL 錯誤指定預設 <response>。

<response>

Replicat 在發生 DDL <error> 時所採取的動作。可為下列其中之一:

ABEND

倒回作業並異常終止處理。ABEND 為預設值。

DISCARD

將違規作業記錄至捨棄檔,但繼續處理後續的 DDL。

IGNORE

忽略錯誤。

{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}

識別控制 DDLERROR 陳述式是否處理特定 DDL 的包含或排除子句開頭。如需語法和用法,請參閱 DDL 篩選選項。

[IGNOREMISSINGOBJECTS ABENDONMISSINGOBJECTS]

控制當目標上找不到的物件發出 DML 時,Extract 是否異常中止。在目標上直接發出不在複製組態中的 DDL,或當來源與目標定義之間有差異時,通常會發生此情況。

IGNOREMISSINGOBJECTS

讓 Replicat 略過遺漏表格的 DML 作業。

ABENDONMISSINGOBJECTS

讓 Replicat 在遺漏的表格上中止 DML 作業。

[RETRYDELAY <seconds>]

指定嘗試重試失敗作業之間的延遲 (秒)。預設值是 10 秒。

範例

範例 1 DDLERROR 基本範例

在下列範例中,DDLERROR 敘述句會讓 Replicat 忽略指定的錯誤,但在以 10 秒間隔再次嘗試作業三次之前,並不會忽略該錯誤。Replicat 會將錯誤處理套用至在名稱符合 tab* 萬用字元 (任何使用者、任何作業) 的物件上執行的 DDL 作業 (滿足 tab1* 的物件除外)。

DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*

若要處理除該錯誤之外的所有錯誤,可以新增下列 DDLERROR 敘述句。

DDLERROR DEFAULT ABEND

在此情況下,Replicat 會出現 DDL 錯誤。

範例 2 使用多個 DDLERROR 陳述式

除非多個 DDLERROR 陳述式指定相同的錯誤 (不含任何其他限定元),否則您在參數檔中列出 DDLERROR 陳述式的順序不會影響其有效性。在此情況下,Replicat 只會使用列出的第一個。例如,提供下列陳述式時,Replicat 將中止錯誤。

DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE

不過,使用適當的限定元後,先前的組態會變得更有用。舉例而言:

DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE

在此情況下,因為有 INCLUDE 陳述式,只有在錯誤 DDL 陳述式中的物件名稱符合萬用字元 tab* 時,Replicat 才會中止。Replicat 將會忽略包含任何其他物件名稱的錯誤作業。