取代位元組字元
有效對象
擷取與 Replicat
說明
對應字元類型資料欄時,當來源或目標字元集沒有有效的代碼點時,請使用 REPLACEBADCHAR 參數來控制處理的回應。依照預設,只有在來源和目標資料庫具有不同的字元集,且預設回應為中止時,才會執行無效程式碼點的檢查。當來源與目標資料庫具有相同的字元集時,您可以使用 FORCECHECK 選項來強制程序檢查無效的程式碼點。REPLACEBADCHAR 適用於全球。
預設
ABORT
語法
REPLACEBADCHAR {ABORT | SKIP | ESCAPE | SUBSTITUTE <string> | NULL | SPACE} [FORCECHECK] [NOWARNING]
ABORT
處理作業在發現無效的字碼點時會異常中止. 這是預設值。
SKIP
處理程序會略過記錄中的錯誤字元。
ESCAPE
處理程序會以資料值的跳脫版本取代資料值。視來源資料庫的字元集而定,此值會輸出為下列其中一項:
-
如果來源資料不是
UTF-16(NCHAR/NVARCHAR),則輸出為十六進位資料 (\xXX))。 -
如果來源資料為
UTF-16,則輸出為 Unicode (\uXXXX).)
SUBSTITUTE <string>
處理作業會以指定的字串 (Unicode 表示法或最多 4 個字元) 取代資料。預設會使用目標字元集的預設替代字元來取代。
NULL
若目標資料欄可為空值,則處理程序會以 NULL 的值取代無效字元,否則會指定一個空格 (U+0020)。
SPACE
處理作業會以空格 (U+0020) 取代無效的字元.
FORCECHECK
當來源及目標資料庫具有相同的字元集時,此程序會檢查無效的程式碼點。此舉會覆寫預設值,當來源與目標字元集完全相同時,會略過驗證。
NOWARNING
處理作業不會顯示與轉換和驗證錯誤有關的警告訊息.
範例
範例 1
下列範例會以 NULL 值取代無效的程式碼點。
REPLACEBADCHAR NULL
範例 2
因為已指定 ESCAPE,所以 Oracle GoldenGate 會將來源 NCHAR 資料欄中的 Euro 符號取代為遁離的 u20AC 版本,因為目標為 ISO-8859-1,不支援 Euro 程式碼點。
REPLACEBADCHAR ESCAPE
範例 3
下列項目會替換無效字元的控制字元。
REPLACEBADCHAR SUBSTITUTE \u001A