主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

3.182 TRAILCHARSETUNICODE

適用対象

DB2 for iのExtract

説明

DB2 for iの旧リリースすべてにおいて、Extractではテキスト・データがすべてUnicodeに変換されました。UTF-8 (シングルおよびマルチバイトCCSIDの場合)またはUTF-16 (2バイトCCSIDの場合)のいずれかです。つまりSQLでは、初期ロードまたは標準Extractの証跡で、バイナリ以外のCHARVARCHARおよびCLOBデータはすべてUTF-8に変換され、GRAPHICVARGRAPHICおよびDBCLOBデータはすべてUTF-16に変換されます。Oracle GoldenGate 12c (12.2.0.1)リリースより前のExtractの証跡フォーマットを使用している場合は、これが引き続き当てはまります。

列のキャラクタ・セット列を持つバージョンに対する旧リリースのdefgenの動作では、-1を指定して、列のキャラクタ・セットがキャラクタ・セットを使用する列のデフォルトであることを示しました。その後で、証跡ヘッダーを使用して列データのキャラクタ・セットを指定(常にUTF-8またはUTF16に設定)しました。

このリリースのデフォルト動作では、Oracle GoldenGate変換でサポートされているキャラクタ・セットを変更せずにパス・スルーできます。これにより、処理対象のレコード内のテキスト・データ量に比例して、自動的にCPU使用量が削減され、Extractのスループット率が向上します。Oracle GoldenGateで変換できないCCSIDがExtractで見つかった場合、Extractは元の動作にデフォルト設定され、旧リリースで行われていたようにテキスト・データを適切なUnicodeキャラクタ・セットに変換します。これにより、新しいExtractからの証跡を処理するどのReplicatでも、Extractのテキスト・データを処理できるようになります。

DB2 for i用Extractの元の動作を使用する場合は、キーワードTRAILCHARSETUNICODEをExtractのprmファイルに追加する必要があります。これにより、旧リリースと同様に、すべてのテキスト・データがUnicodeに変換されます。

または、表定義でCOLCHARSETパラメータを使用して、特定のオブジェクト・レベルまたは列レベルで選択的に古い変換動作に戻すこともできます。

(初期ロード以外の)標準Extractの一般的なprmファイルの例:

  • すべてのTABLE文に含まれているオブジェクトのテキスト・データはすべてUnicodeに変換されます。

  • - このキーワードが含まれていない場合、Extractはデフォルトでテキスト・データを変換しません

    table schema.table, COLCHARSET(UTF-8, ALL)

    または

    table schema.table, charset(UTF-8)

  • この特定のTABLE文に一致するオブジェクトのテキスト・データはすべてUnicode (2バイトの列はUTF-16)に変換されます。

    table schema.table, COLCHARSET(UTF-8, TXTCOL4)

  • TXTCOL4のみがUTF-8に変換され、他のテキスト・データはすべて変更せずにパス・スルーされます。

    注意:

    DB2 for i PASEデータベース・レイヤーの機能方法とOracle GoldenGateの内部処理のため、状況によっては引き続きUnicode変換が必要になります。

  • 初期ロードExtractは自動的にすべてのデータをUnicodeに変換し、列にUnicodeデータを指定します。

  • Oracle GoldenGate 12c (12.2.0.1)リリースより前の証跡フォーマットを使用するExtractでは、テキスト・データをUnicodeへ変換する方法に自動的に戻されます。

  • 列関数あるいはSQLEXECFETCHCOLUMNSまたはFETCHMODCOLSを含む表指定では、TRAILCHARSETUNICODEが指定されているか、特定の表または列にCOLCHARSET修飾子が含まれるように変更されている必要があります。これは、Replicatが列関数も使用している場合に当てはまります。このような場合、Replicat表にマップされているExtract表がUnicodeとして送信される必要があります。

DEFGENおよびTRAILCHARSETUNICODE

DEFGENの場合、DEFGENでは証跡が生成されないため、TRAILCHARSETUNICODEはサポートされません。TRAILCHARSETUNICODEを使用するか、列のキャラクタ・セットを無効にしてReplicatでdefsファイルを使用する場合、defgenでは、次のようにして同等の列のCHARSETのオーバーライドを指定することも必要です。

  • table schema.table, COLCHARSET(ALL, UTF-8)

    または

    table schema.table, CHARSET(UTF-8)

  • この特定のTABLE文に一致するオブジェクトのテキスト・データはすべてUnicode (2バイトの列はUTF-16)に変換されます。

    table schema.table, COLCHARSET(TXTCOL4, UTF-8)

  • TXTCOL4のみがUTF-8に変換され、他のテキスト・データはすべて変更せずにパス・スルーされます。

このリリースのデフォルト動作では、列のメタデータを必要に応じて操作データとともに証跡データにインラインで含めます。つまり、定義ファイルはOracle GoldenGateレプリケーションで必要なくなり、無視されます。

ただし、Oracle GoldenGate Replicatまたはポンプが、この動作をオーバーライドして定義ファイルを使用するように指定されているか、前の証跡フォーマット・レベルが使用されている場合は、defgen定義ファイルを再作成する必要があります。この場合、その定義とExtractが証跡に書き込む内容が必ず一致するように注意する必要があります。したがって、Extract prmファイル内にあるTRAILCHARSETUNICODEキーワード、CHARSETまたはCOLCHARSET修飾子が、Extractに一致するdefgen prmファイルにも存在する必要があります。

ReplicatのASSUMETARGETDEFS OVERRIDEでも、ExtractがExtractパラメータ・ファイルの表でTRAILCHARSETUNICODEまたは同等のCOLCHARSET修飾子を使用している必要があります。これは、Replicatが引き続きUnicode接続を使用してデータベースに接続し、すべてのテキスト・フィールドをUnicodeとして内部処理しているためです。

デフォルト

なし

構文

TRAILCHARSETUNICODE