

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 文字置換タスクの設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.CharacterSubstitution"></a>

レプリケーションタスクが、 `STRING`または `WSTRING` データ型を持つすべてのソースデータベース列のターゲットデータベースで文字置換を実行するように AWS DMS 指定できます。タスク設定ファイルを使用してタスク設定を設定する方法については、「[タスク設定例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)」をご参照ください。

次のソースデータベースとターゲットデータベースからのエンドポイントを持つ任意のタスクの文字置換を設定できます。
+ ソースデータベース。
  + Oracle
  + Microsoft SQL Server
  + MySQL
  + MariaDB
  + [PostgreSQL]
  + SAP Adaptive Server Enterprise (ASE)
  + IBM Db2 LUW
+ ターゲットデータベース:
  + Oracle
  + Microsoft SQL Server
  + MySQL
  + MariaDB
  + [PostgreSQL]
  + SAP Adaptive Server Enterprise (ASE)
  + Amazon Redshift

タスク設定の `CharacterSetSettings` パラメータを使用して、文字置換を指定できます。これらの文字置換は、16 進数表記の Unicode コードポイント値を使用して指定された文字に対して発生します。両方が指定されている場合は、2 つのフェーズで置換を実装できます。

1. **個々の文字置換** — ソース上の選択した文字の値を、ターゲット上の対応する文字の指定された置換値に置き換え AWS DMS ることができます。`CharacterSetSettings` の `CharacterReplacements` 配列を使用して、指定した Unicode コードポイントを持つすべてのソース文字を選択します。また、この配列を使用して、ターゲットの対応する文字の置換コードポイントを指定します。

   特定のコードポイントを持つソースのすべての文字を選択するには、`CharacterReplacements` 配列の `SourceCharacterCodePoint` のインスタンスをそのコードポイントに設定します。次に、この配列で `TargetCharacterCodePoint` の対応するインスタンスを設定することで、すべての同等のターゲット文字の置換コードポイントを指定します。ターゲットキャラクターを置き換えるのではなく削除するには、`TargetCharacterCodePoint` の適切なインスタンスをゼロ (0) に設定します。`CharacterReplacements` 配列で `SourceCharacterCodePoint` 設定と `TargetCharacterCodePoint` 設定の追加のペアを指定することで、必要な数のターゲットキャラクターの値を置換または削除できます。`SourceCharacterCodePoint` の複数のインスタンスに同じ値を指定した場合、対応する最後の `TargetCharacterCodePoint` の設定の値がターゲットに適用されます。

   例えば、`CharacterReplacements` に次の値を指定するとします。

   ```
   "CharacterSetSettings": {
       "CharacterReplacements": [ {
           "SourceCharacterCodePoint": 62,
           "TargetCharacterCodePoint": 61
           }, {
           "SourceCharacterCodePoint": 42,
           "TargetCharacterCodePoint": 41
           }
       ]
   }
   ```

   この例では、 はすべての文字をターゲット上のソースコードポイントの 16 進値 62 でコードポイント値 61 の文字 AWS DMS に置き換えます。また、すべての文字をターゲットのソースコードポイント 42 に、コードポイント値 41 の文字 AWS DMS に置き換えます。つまり、 AWS DMS は、ターゲット上の文字 `'b'` のすべてのインスタンスを文字 `'a'` で置き換えます。同様に、 AWS DMS はターゲット`'B'`上の文字のすべてのインスタンスを文字 に置き換えます`'A'`。

1. **文字セットの検証と置換** – 個々の文字置換が完了したら、指定した 1 文字セットにすべてのターゲット文字の有効な Unicode コードポイントがあることを確認 AWS DMS できます。`CharacterSetSettings` で `CharacterSetSupport` を使用して、このターゲットキャラクターの検証と変更を設定します。検証文字セットを指定するには、`CharacterSetSupport` で `CharacterSet` を文字セットの文字列値に設定します。（指定できる値については、`CharacterSet`を参照してください） 次のいずれかの方法で、無効なターゲット文字を で AWS DMS 変更できます。
   + 現在のコードポイントに関係なく、すべての無効なターゲット文字に対して 1 つの置換 Unicode コードポイントを指定します。この置換コードポイントを設定するには、`CharacterSetSupport` の `ReplaceWithCharacterCodePoint` を指定された値に設定します。
   + `ReplaceWithCharacterCodePoint` をゼロ (0) に設定して、すべての無効なターゲット文字の削除を設定します。

   例えば、`CharacterSetSupport` に次の値を指定するとします。

   ```
   "CharacterSetSettings": {
       "CharacterSetSupport": {
           "CharacterSet": "UTF16_PlatformEndian",
           "ReplaceWithCharacterCodePoint": 0
       }
   }
   ```

   この例では、 は、文字セットで無効なターゲットで見つかった`"UTF16_PlatformEndian"`文字をすべて AWS DMS 削除します。したがって、16 進値で指定された文字 `2FB6` はすべて削除されます。この値は 4 バイトの Unicode コードポイントであり、UTF16 文字セットが 2 バイトのコードポイントを持つ文字のみを受け付けるため、無効です。

**注記**  
レプリケーションタスクは、テーブルマッピングで指定したグローバルまたはテーブルレベルの変換を開始する前に、指定されたすべての文字置換を完了します。テーブルマッピングの詳細については、「[テーブルマッピングを使用して、タスクの設定を指定する](CHAP_Tasks.CustomizingTasks.TableMapping.md)」をご参照ください。  
文字置換では LOB データ型をサポートしていません。これには、DMS が LOB データ型と見なすすべてのデータ型が含まれます。例えば、Oracle の `Extended` データ型は LOB と見なされます。ソースデータ型の詳細については、次の「[Oracle のソースデータ型](CHAP_Source.Oracle.md#CHAP_Source.Oracle.DataTypes)」を参照してください。

で が AWS DMS サポートする値は、次の表のとおり`CharacterSet`です。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.CharacterSubstitution.html)