來源字元集
有效對象
Replicat
說明
使用 SOURCECHARSET 參數控制 Replicat 將資料從來源字元集轉換成目標字元集。Replicat 預設會轉換 11.2.1 和更新版本的字元集,但您可能需要介入下列情況:
-
啟用擷取版本早於 11.2.1 的正確資料轉換。版本 11.2.1 之前的擷取版本不會將來源字元集的相關資訊寫入歷程檔,因此必須將資訊直接提供給 Replicat。擷取版本 11.2.1 和更新版本會將來源字元集的相關資訊寫入 Replicat 使用的歷程檔,並忽略任何
SOURCECHARSET規格。 -
覆寫歷程檔中的來源資料庫字元集。將
SOURCECHARSET與OVERRIDE選項搭配使用,以指定您要使用的字元集。例如,使用案例是將資料庫從資源回收移轉至 UNICODE,或將特定字元集資料庫從資源回收移轉至非字元集感知資料庫,方法是忽略來源資料庫字元集。
Replicat 在使用 SOURCECHARSET 字元集時發出警告訊息。
如果來源資料中有無效的字元或目標字元集不支援來源字元,請使用 REPLACEBADCHAR 參數來處理驗證錯誤。它提供放棄這些錯誤的選項、略過導致錯誤的記錄,或指定字元的替代值。
預設
無
語法
SOURCECHARSET {<source_charset> | PASSTHRU | OVERRIDE} [DB2ZOS]
<source_charset>
指定擷取版本所寫入之資料 (早於 11.2.1) 的來源字元集。Replicat 會在將字元類型資料欄轉換成目標字元集時使用指定的字元集。
對於 <source_charset>,請指定代表來源資料庫的適當字元集識別碼。
對於 Oracle,如果未指定 SOURCECHARSET,但目標上有一個 NLS_LANG 環境變數,Replicat 會使用 NLS_LANG 值作為來源資料庫字元集。如果 SOURCECHARSET 和 NLS_LANG 都不存在,Replicat 會中止以防止可能的資料損毀。
PASSTHRU
PASSTHRU
強制 Replicat 在不轉換字元集的情況下套用資料。字元集差異會忽略如下:
-
資料庫若是 Oracle,會以儲存在歷程檔中的方式套用資料。
-
資料庫若不是 Oracle,如果資料庫支援連結作為二進位資料,則會以二進位資料形式套用資料。否則,資料會依原樣套用。
如果已指定 PASSTHRU,且 CHAR/VARCHAR/CLOB 與 NCHAR/NVARCHAR/NCLOB 之間的對應存在於 MAP 陳述式中,則 Replicat 會中止。
指定 PASSTHRU 模式時,如果有任何 Oracle GoldenGate 資料欄對應函數用於以字元為基礎的資料欄,Replicat 會發出警告訊息,並將這些函數的結果轉換成目標資料庫字元集,再將它們對應至目標資料欄。
只有在確定來源和目標字元集相容時,才應該使用 PASSTHRU。如果您不確定 PASSTHRU 是否適合您的環境,請先洽詢 Oracle Support,再加以使用。
OVERRIDE
強制 Replicat 使用指定的字元集,藉此覆寫歷程檔中的來源資料庫字元集。此選項會覆寫字元類型資料欄字元集,但下列情況除外:
-
字元集會由
CHARSET和COLCHARSET參數覆寫。 -
使用
NCHAR、NVARCHAR及NCLOB資料類型。 -
資料庫會將資料欄字元集明確覆寫為資料庫字元集以外的集合。
z/OS 的 DB2
適用於 z/OS 的 Db2。
如果 z/OS 平台中包含 Db2 資料的歷程檔版本是 Oracle GoldenGate 12.1 或更舊版本,則為必要項目。此參數可確保 Replicat 可辨識 z/OS 的資料為 Db2,此參數允許使用 ASCII 與 EBCDIC 字元格式的組合。
範例
範例 1
SOURCECHARSET ISO-8859-9
範例 2
SOURCECHARSET PASSTHRU
範例 3
SOURCECAHRSET JA16EUC
範例 4
SOURCECHARSET OVERRIDE WE8ISO8859P15