DDLSUBST
有效對象
擷取與 Replicat
說明
使用 DDLSUBST 參數來替代 DDL 作業中的字串。例如,您可以替換另一個表格名稱,或替換註解中的字串。搜尋不會區分大小寫。如果要在字串中表示引號,請使用雙引號。
使用 DDLSUBST 的準則
-
請勿使用
DDLSUBST將資料欄名稱和資料類型轉換成目標上的不同類型。以此方式變更目標物件的結構,將資料複寫至目標物件時將會發生錯誤。同樣地,請勿使用DDLSUBST來變更目標DDL敘述句中的擁有者和表格名稱。一律使用MAP敘述句,將複製的DDL作業對應至不同的目標物件。 -
DDLSUBST一律會在DDL參數之後執行,不論其在參數檔中的相對順序為何。因為篩選會先執行,所以請使用與您用來替代字串的準則相容的篩選準則。例如,請考量下列參數陳述式:
DDL INCLUDE OBJNAME fin.*
DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*
在此範例中,不會發生替代,因為 INCLUDE 和 DDLSUBST 陳述式中的物件不同。fin 擁有的物件包含在 Oracle GoldenGate DDL 組態中,但 sales 擁有的物件則不包含在組態中。
-
您可以使用多個
DDLSUBST參數。它們會依參數檔中列出的順序執行。 -
對於包含註解的 Oracle
DDL,如果您要對這些註解執行字串替代,請勿將DDLOPTIONS參數與REMOVECOMMENTS BEFORE選項搭配使用。REMOVECOMMENTS BEFORE會先移除註解,再進行字串替代。若要移除註解,但允許字串替代,請使用REMOVECOMMENTS AFTER選項。 -
除了資料庫所施加的限制之外,沒有替代的字串大小上限。如果字串大小超過資料庫限制,則會中止執行作業的 Extract 或 Replicat 處理作業。
預設
沒有替代
語法
DDLSUBST '<search_string>' WITH '<replace_string>'
[INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>]
<'search_string'>
您要取代之來源 DDL 敘述句中的字串。將字串放在單引號內。如果要在字串中表示引號,請使用雙引號。
WITH
必要的關鍵字。
<'replace_string'>
要用來取代目標 DDL 中的字串。將字串括在單引號內。如果要在字串中表示引號,請使用雙引號。
INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>
指定一或多個 INCLUDE 和 EXCLUDE 敘述句,以篩選套用字串替代規則的 DDL 作業。如需語法和用法,請參閱 DDL 篩選選項。
範例
範例 1
下列會以 fin 綱要中表格的字串 customers 取代字串 cust。
DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*
範例 2
只有當 DDL 指令包含 logfile 這個字時,下列項目才會替代新的目錄。如果找到多次搜尋字串,就會多次插入取代字串。
DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'
範例 3
下列使用多個以顯示順序執行的 DDLSUBST 敘述句。
DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL
上述的 net 效果將所有 a 和 b 字串都替換為 c。