

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 문자 대체 작업 설정
<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진수 표기법으로 유니코드 코드 포인트 값을 사용하여 지정된 문자에 대해 발생합니다. 두 단계 모두 지정된 경우 두 단계를 다음 순서로 사용하여 문자 대체를 구현할 수 있습니다.

1. **개별 문자 대체** - 소스에서 선택한 문자의 값을 대상에서 해당 문자의 지정된 대체 값으로 AWS DMS 바꿀 수 있습니다. `CharacterSetSettings`에서 `CharacterReplacements` 배열을 사용하여 지정한 유니코드 코드 포인트가 있는 모든 소스 문자를 선택합니다. 또한 이 배열을 사용하여 대상의 해당 문자에 대한 대체 코드 포인트를 지정합니다.

   지정된 코드 포인트가 있는 소스의 모든 문자를 선택하려면 `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'`로 바꿉니다. 마찬가지로는 대상`'B'`에 있는 문자의 모든 인스턴스를 문자로 바 AWS DMS 꿉니다`'A'`.

1. **문자 세트 검증 및 교체** - 개별 문자 교체가 완료되면 모든 대상 문자에 지정한 단일 문자 세트에 유효한 유니코드 코드 포인트가 있는지 AWS DMS 확인할 수 있습니다. `CharacterSetSettings`에서 `CharacterSetSupport`를 사용하여 이 대상 문자 검증 및 수정을 구성할 수 있습니다. 검증 문자 집합을 지정하려면 `CharacterSetSupport`의 `CharacterSet`를 문자 집합의 문자열 값으로 설정합니다. (`CharacterSet`에 대해 가능한 값은 다음과 같습니다.) 다음 방법 중 하나로 잘못된 대상 문자를 AWS DMS 수정할 수 있습니다.
   + 현재 코드 포인트에 관계없이 유효하지 않은 모든 대상 문자에 대해 단일 대체 유니코드 코드 포인트를 지정합니다. 이 대체 코드 포인트를 구성하려면 `CharacterSetSupport`의 `ReplaceWithCharacterCodePoint`를 지정된 값으로 설정합니다.
   + `ReplaceWithCharacterCodePoint`를 0으로 설정하여 유효하지 않은 모든 대상 문자의 삭제를 구성합니다.

   예를 들어 `CharacterSetSupport`에 다음과 같은 값을 지정한다고 가정하겠습니다.

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

   이 예제에서는 대상에서 발견된 문자 중 문자 집합에서 유효하지 않은 `"UTF16_PlatformEndian"` 문자를 AWS DMS 삭제합니다. 따라서 16진수 값 `2FB6`으로 지정된 모든 문자가 삭제됩니다. 이 값은 4바이트 유니코드 코드 포인트이고 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/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.CharacterSubstitution.html)