

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

# DMS Schema Conversion의 변환 규칙
<a name="sc-transformation-rules"></a>

*변환 규칙을* 사용하면 DMS Schema Conversion이 데이터베이스 객체를 변환하여 기본 이름 지정 및 데이터 유형 매핑을 재정의하는 방법을 사용자 지정할 수 있습니다. 이러한 규칙을 데이터베이스, 스키마, 테이블, 뷰, 열, 함수 반환 값, 루틴 파라미터 및 로컬 변수에 적용할 수 있습니다.

예를 들면, 소스 스키마에 `test_TABLE_NAME`이라는 테이블 집합이 있다고 가정해 보세요. 대상 스키마의 접두사 `test_`를 접두사 `demo_`로 변경하는 규칙을 설정할 수 있습니다.

다음 작업을 수행하는 변환 규칙을 생성할 수 있습니다.
+ 접두사 추가, 제거 또는 교체
+ 접미사 추가, 제거 또는 교체
+ 열의 데이터 유형, 함수 반환 값, 루틴 파라미터 또는 로컬 변수 변경
+ 객체 이름을 소문자 또는 대문자로 변환
+ 객체 이름 바꾸기

## 변환 규칙 생성
<a name="sc-transformation-rules-create"></a>

DMS Schema Conversion은 변환 규칙을 마이그레이션 프로젝트의 일부로 저장합니다. 변환 규칙을 정의하려면 마이그레이션 프로젝트를 생성하거나 수정할 때 `rules` 배열이 있는 객체가 포함된 JSON 문자열로 전달합니다. 배열의 각 요소는 별도의 규칙 객체를 나타냅니다. 마이그레이션 프로젝트는 최대 512개의 변환 규칙(최대 128KB)을 지원합니다.

변환 규칙이 있는 배열의 구조는 다음과 같습니다.

```
{
  "rules": [
    {
      {{Rule object 1}}
    },
    {
      {{Rule object 2}}
    },
    ...
    {
      {{Rule object N}}
    }
  ]
}
```

프로젝트에 여러 변환 규칙을 추가할 수 있습니다. 변환 중에 DMS Schema Conversion은 변환 규칙을 추가한 순서와 동일한 순서로 적용합니다.

여러 규칙이 동일한 객체를 대상으로 하는 경우 동작은 작업 유형에 따라 달라집니다. 작업 유형이 다른 규칙이 모두 적용됩니다. 예를 들어 `add-prefix` 규칙과 `add-suffix` 규칙이 모두 적용됩니다. 작업 유형이 동일한 규칙은 서로 재정의되며 마지막 규칙만 적용됩니다.

변환 규칙을 생성하려면 다음 방법 중 하나를 사용합니다.

------
#### [ AWS Management Console ]

**콘솔을 사용하여 변환 규칙을 생성하려면**

1. **마이그레이션 프로젝트 생성** 페이지에서 **변환 규칙 추가**를 선택합니다. 자세한 내용은 [ 마이그레이션 프로젝트 생성](migration-projects-create.md) 단원을 참조하십시오.

1. **규칙 대상**에서이 규칙이 적용되는 데이터베이스 객체 유형을 선택합니다. 콘솔 마법사는 `schema`, `table`및 `column` 대상을 지원합니다. `database` 또는와 같은 다른 대상을 사용하려면 콘솔 또는 AWS CLI에서 JSON 편집기를 `view`사용합니다.

1. **소스 스키마**에서 **스키마 입력**을 선택합니다. 그런 다음이 규칙이 적용되는 소스 스키마, 테이블 및 열을 지정합니다. 정확한 이름을 사용하여 객체 하나를 선택하거나 백분율 기호(%)가 있는 패턴을 와일드카드로 사용하여 문자 수와 일치시킬 수 있습니다.

1. **작업**에서 수행할 작업을 선택합니다.

1. 규칙 작업에 따라 추가 값을 입력합니다.
   + `add-prefix` 또는 `add-suffix` - 추가할 텍스트를 입력합니다.
   + `remove-prefix` 또는 `remove-suffix` - 제거할 텍스트를 입력합니다.
   + `replace-prefix` 또는 `replace-suffix` - 기존 텍스트와 대체 텍스트를 입력합니다.
   + `rename` - 객체의 새 이름을 입력합니다.
   + `convert-uppercase` 또는 `convert-lowercase` - 추가 값이 필요하지 않습니다.
   + `change-data-type` - 대상 데이터 유형 이름과 선택적으로 정밀도, 규모 또는 길이를 입력합니다.

1. **변환 규칙 추가**를 선택하여 다른 변환 규칙을 추가합니다.

   규칙 추가를 완료한 후 **마이그레이션 프로젝트 생성**을 선택합니다.

------
#### [ AWS CLI ]

 AWS CLI를 사용하여 변환 규칙을 추가하려면 다음 명령 중 하나와 함께 `--transformation-rules` 파라미터를 사용합니다.
+ [create-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/create-migration-project.html) - 새 마이그레이션 프로젝트를 생성할 때.
+ [modify-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) – 기존 마이그레이션 프로젝트의 경우.

다음 예시에서는 기존 마이그레이션 프로젝트에 변환 규칙을 추가합니다.

```
aws dms modify-migration-project \
  --migration-project-identifier {{migration_project_arn}} \
  --transformation-rules '{{json_rules}}'
```

특정 AWS 리전에서이 명령을 실행하려면와 같은 `--region` 파라미터를 추가합니다`--region us-west-2`.

------

기존 변환 규칙을 편집, 복제 또는 제거하려면 섹션을 참조하세요[변환 규칙 편집](#sc-transformation-rules-edit).

## 변환 규칙 검색
<a name="sc-transformation-rules-obtain"></a>

 AWS 관리 콘솔 또는 AWS CLI를 사용하여 기존 DMS Schema Conversion 마이그레이션 프로젝트에서 변환 규칙을 검색할 수 있습니다.

------
#### [ AWS Management Console ]

 AWS 관리 콘솔을 사용하여 변환 규칙을 보려면 기존 마이그레이션 프로젝트에서 **수정**을 선택하고 **변환 규칙** 섹션에서 기존 규칙 목록을 검토합니다.

------
#### [ AWS CLI ]

기존 DMS Schema Conversion 마이그레이션 프로젝트에서 변환 규칙을 검색하려면 [describe-migration-projects](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-migration-projects.html) 명령을 사용합니다. 응답은 JSON 형식을 사용하며 프로젝트와 연결된 변환 규칙을 포함합니다.

다음 AWS CLI 예제는 마이그레이션 프로젝트에서 변환 규칙을 검색합니다.

```
aws dms describe-migration-projects \
  --filters Name=migration-project-identifier,Values={{migration_project_arn}}
```

------

## 변환 규칙 편집
<a name="sc-transformation-rules-edit"></a>

마이그레이션 프로젝트에서 변환 규칙을 편집, 추가 또는 제거하려면 다음 방법 중 하나를 사용합니다.

------
#### [ AWS Management Console ]

**변환 규칙을 편집하려면**

1. **마이그레이션 프로젝트**를 선택한 다음, 마이그레이션 프로젝트를 선택합니다.

1. **수정**을 선택하여 마이그레이션 프로젝트 설정을 편집합니다.

1. **변환 규칙**에서 다음 작업 중 하나를 선택합니다.
   + **변환 규칙 추가**를 선택하여 새 변환 규칙을 추가합니다.
   + **기존** 변환 규칙을 복제하고 목록 끝에 추가하려면 복제를 선택합니다.
   + **제거**를 선택하여 기존 변환 규칙을 제거합니다.
   + 기존 변환 규칙을 선택하여 편집합니다.

1. 편집 규칙을 완료한 후 **변경 내용 저장**을 선택합니다.

------
#### [ AWS CLI ]

 AWS CLI를 사용하여 변환 규칙을 업데이트하려면 [modify-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) 명령을 `--transformation-rules` 파라미터와 함께 사용합니다. 업데이트된 전체 규칙 세트를 JSON 문자열로 전달합니다.

```
aws dms modify-migration-project \
  --migration-project-identifier {{migration_project_arn}} \
  --transformation-rules '{{json_rules}}'
```

------

## 변환 규칙 형식
<a name="sc-transformation-rules-format"></a>

변환 규칙은 JSON 객체 필드를 사용하여 소스 객체를 대상에 상응하는 객체로 변환하는 방법을 정의합니다. 각 규칙 유형은 특정 필드 세트를 사용합니다. 작업에 적용되는 필드만 포함합니다.

다음 JSON 객체는 DMS Schema Conversion 변환 규칙을 설명합니다.

```
{
  "rule-type": "transformation",
  "rule-id": {{rule_id}},
  "rule-name": "{{rule_name}}",
  "rule-action": "{{rule_action}}",
  "rule-target": "{{rule_target}}",
  "object-locator": {
    [ "database-name": "{{database_name}}", ]
    [ "schema-name": "{{schema_name}}", ]
    [ "table-name": "{{table_name}}", ]
    [ "column-name": "{{column_name}}", ]
    [ "parent": "{{parent_name}}", ]
    [ "function-name": "{{function_name}}", ]
    [ "procedure-name": "{{procedure_name}}", ]
    [ "parameter-name": "{{parameter_name}}", ]
    [ "local-variable-name": "{{local_variable_name}}", ]
    [ "type": "{{source_data_type}}", ]
    [ "precision": {{source_precision}}, ]
    [ "scale": {{source_scale}}, ]
    [ "length": {{source_length}} ]
  },
  [ "value": "{{rule_value}}", ]
  [ "old-value": "{{rule_old_value}}", ]
  [ "data-type": {
    "type": "{{data_type_name}}",
    [ "precision": {{data_type_precision}}, ]
    [ "scale": {{data_type_scale}}, ]
    [ "length": {{data_type_length}} ]
  } ]
}
```

다음 표에서는 각 파라미터를 설명합니다.


| 파라미터 | 가능한 값 | 설명 | 
| --- | --- | --- | 
| rule-type | transformation | 객체 로케이터에서 지정한 각 객체에 규칙을 적용하는 값입니다.<br />모든 변환 규칙에 대해이 값을 로 설정합니다`transformation`.<br />필수 파라미터. | 
| rule-id | 숫자(정수) 값입니다. | 규칙을 식별하기 위한 고유한 숫자 값입니다.<br />필수 파라미터. | 
| rule-name | 영숫자 값입니다. | 규칙을 식별하기 위한 고유한 이름입니다.<br />필수 파라미터. | 
| rule-action | add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type | 객체에 적용할 변환. 모든 변환 규칙 작업은 대소문자를 구분합니다.<br />접두사 작업:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />접미사 작업:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />사례 변환:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />직접 수정:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />범위: 접두사, 접미사, 이름 바꾸기 및 대/소문자 변환 작업을 스키마, 테이블 및 열에 적용할 수 있습니다.<br />`change-data-type` 작업은 열, 함수 반환 값, 루틴 파라미터 및 로컬 변수에만 적용됩니다.<br />필수 파라미터. | 
| rule-target | database, schema, table, view, column, function result, routine parameter, local variable | 규칙이 적용될 객체의 유형입니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />필수 파라미터. | 
| object-locator | JSON 객체입니다. | 규칙이 적용되는 소스 데이터베이스 객체를 식별하는 객체입니다. 각 `object-locator` 객체 필드에서 값의 전체 또는 일부에 대해 백분율 기호(`%`)를 와일드카드로 사용할 수 있습니다.<br />객체에는 다음 문자열 필드가 포함됩니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />변환 규칙의 테이블 또는 열 이름과 같은 모든 객체 이름은 대/소문자를 구분합니다.<br />다음 섹션에서는 각 객체 필드를 설명합니다.<br />필수 파라미터. | 
| object-locator \| database-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스의 이름입니다.<br />데이터베이스 아키텍처가 데이터베이스에서 객체의 최상위 컨테이너로 시작되는 데이터베이스 공급업체에 적용됩니다. 예: Microsoft SQL Server, SAP ASE.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| schema-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 스키마의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| table-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 테이블의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| column-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 테이블 열의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| parent | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | `function-name` 또는와 같이 지정된 객체의 상위인 소스 데이터베이스 객체의 이름입니다`procedure-name`.<br />일부 공급업체의 데이터베이스에서 규칙이 적용되는 객체는 하위 객체일 수 있으며 상위 객체를 지정해야 합니다.<br />예를 들어 Oracle에서 패키징된 함수입니다. 여기서 상위는 패키지 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| function-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 함수의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| procedure-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 프로시저의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| parameter-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 함수 또는 프로시저 파라미터의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| local-variable-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 함수 또는 프로시저 내의 로컬 변수 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| type | 영숫자 값입니다. | 일치시킬 소스 데이터 유형 이름입니다. 이 필드를 사용하여 특정 데이터 형식의 객체에만 규칙을 적용합니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| precision | 숫자(정수) 값입니다. | 일치시킬 소스 데이터 유형의 정밀도입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| scale | 숫자(정수) 값입니다. | 일치시킬 소스 데이터 유형의 규모입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| length | 숫자(정수) 값입니다. | 일치시킬 소스 데이터 유형의 길이입니다.<br />선택적 JSON 객체 필드입니다. | 
| value | 대상 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 변환 작업에 사용되는 텍스트 값입니다. `add-prefix` 및에 대해 추가할 텍스트를 `add-suffix`지정합니다. `remove-prefix` 및의 경우 제거할 텍스트를 `remove-suffix`지정합니다. `replace-prefix` 및의 경우 대체 텍스트를 `replace-suffix`지정합니다. 의 경우 새 이름을 `rename`지정합니다.<br />`convert-uppercase`, `convert-lowercase`및를 제외한 모든 작업에 필요합니다`change-data-type`. | 
| old-value | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 객체 이름에서 찾고 바꿀 기존 값입니다. `replace-prefix` 및와 같은 작업에 필요합니다`replace-suffix`.<br />선택적 파라미터입니다. | 
| data-type | JSON 객체입니다. | 가 일 때 대체 데이터 형식 속성을 설명하는 객체`rule-action`입니다`change-data-type`.<br /> 객체는 다음 필드를 포함합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/sc-transformation-rules.html)<br />다음 섹션에서는 각 객체 필드를 설명합니다.<br />선택적 파라미터입니다. | 
| data-type \| type | 영숫자 값입니다. | 가 인 경우 대상 데이터베이스 열에 대한 대체 데이터 형식의 이름`rule-action`입니다`change-data-type`. 유효한 대상 데이터베이스 데이터 형식이어야 합니다.<br />필수 JSON 객체 필드입니다. | 
| data-type \| precision | 숫자(정수) 값입니다. | 가 인 경우 대상 데이터베이스에 대한 대체 데이터 유형의 정밀도`rule-action`입니다`change-data-type`.<br />선택적 JSON 객체 필드입니다. | 
| data-type \| scale | 숫자(정수) 값입니다. | 가 인 경우 대상 데이터베이스에 대한 대체 데이터 형식의 규모`rule-action`입니다`change-data-type`.<br />선택적 JSON 객체 필드입니다. | 
| data-type \| length | 숫자(정수) 값입니다. | 가 인 경우 대상 데이터베이스에 대한 대체 데이터 형식의 길이`rule-action`입니다`change-data-type`.<br />선택적 JSON 객체 필드입니다. | 

## 변환 규칙 예제
<a name="sc-transformation-rules-examples"></a>

다음 예제에서는 다양한 규칙 유형에 대한 `--transformation-rules` 파라미터의 JSON 값을 보여줍니다.

### 접두사 추가
<a name="sc-transformation-rules-examples-add-prefix"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 `DW_`에 접두사를 추가합니다`SALES`.
+ 스키마 `ORDERS`의 `FACT_` 테이블에 접두사를 추가합니다`SALES`.
+ 스키마 `UNIT_PRICE`에서 테이블의 `OLD_` 열`PRODUCTS`에 접두사를 추가합니다`SALES`.

```
{
  "rules": [
    {
      "rule-id": 5,
      "rule-type": "transformation",
      "rule-name": "add-prefix-schema-sales",
      "rule-action": "add-prefix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "SALES"
      },
      "value": "DW_"
    },
    {
      "rule-id": 12,
      "rule-type": "transformation",
      "rule-name": "add-prefix-table-orders",
      "rule-action": "add-prefix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "SALES",
        "table-name": "ORDERS"
      },
      "value": "FACT_"
    },
    {
      "rule-id": 27,
      "rule-type": "transformation",
      "rule-name": "add-prefix-column-unit-price",
      "rule-action": "add-prefix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "SALES",
        "table-name": "PRODUCTS",
        "column-name": "UNIT_PRICE"
      },
      "value": "OLD_"
    }
  ]
}
```

### 접두사 제거
<a name="sc-transformation-rules-examples-remove-prefix"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 `SRC_`에서 접두사를 제거합니다`SRC_FINANCE`.
+ 스키마 `TMP_`의 테이블`TMP_INVOICES`에서 접두사를 제거합니다`SRC_FINANCE`.
+ 스키마 `PAID_`의 `PAID_AMOUNT` 테이블`TMP_PAYMENTS`에서 접두사를 제거합니다`SRC_FINANCE`.

```
{
  "rules": [
    {
      "rule-id": 3,
      "rule-type": "transformation",
      "rule-name": "remove-prefix-schema-src-finance",
      "rule-action": "remove-prefix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "SRC_FINANCE"
      },
      "value": "SRC_"
    },
    {
      "rule-id": 18,
      "rule-type": "transformation",
      "rule-name": "remove-prefix-table-tmp-invoices",
      "rule-action": "remove-prefix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "SRC_FINANCE",
        "table-name": "TMP_INVOICES"
      },
      "value": "TMP_"
    },
    {
      "rule-id": 41,
      "rule-type": "transformation",
      "rule-name": "remove-prefix-column-paid-amount",
      "rule-action": "remove-prefix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "SRC_FINANCE",
        "table-name": "TMP_PAYMENTS",
        "column-name": "PAID_AMOUNT"
      },
      "value": "PAID_"
    }
  ]
}
```

### 접두사 바꾸기
<a name="sc-transformation-rules-examples-replace-prefix"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마`NEW_`에서 접두사를 `OLD_`로 바꿉니다`OLD_INVENTORY`.
+ 스키마 `INT_`의 테이블`STG_WAREHOUSES`에서 접두사를 `STG_`로 바꿉니다`OLD_INVENTORY`.
+ 스키마 `SRC_`의 테이블`TGT_`에서 접두사를 `SRC_WAREHOUSE_CODE`의 열`STG_WAREHOUSES`로 바꿉니다`OLD_INVENTORY`.

```
{
  "rules": [
    {
      "rule-id": 7,
      "rule-type": "transformation",
      "rule-name": "replace-prefix-schema-old-inventory",
      "rule-action": "replace-prefix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "OLD_INVENTORY"
      },
      "value": "NEW_",
      "old-value": "OLD_"
    },
    {
      "rule-id": 22,
      "rule-type": "transformation",
      "rule-name": "replace-prefix-table-stg-warehouses",
      "rule-action": "replace-prefix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "OLD_INVENTORY",
        "table-name": "STG_WAREHOUSES"
      },
      "value": "INT_",
      "old-value": "STG_"
    },
    {
      "rule-id": 35,
      "rule-type": "transformation",
      "rule-name": "replace-prefix-column-src-warehouse-code",
      "rule-action": "replace-prefix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "OLD_INVENTORY",
        "table-name": "STG_WAREHOUSES",
        "column-name": "SRC_WAREHOUSE_CODE"
      },
      "value": "TGT_",
      "old-value": "SRC_"
    }
  ]
}
```

### 접미사 추가
<a name="sc-transformation-rules-examples-add-suffix"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 `_HIST`에 접미사를 추가합니다`HR_ARCHIVE`.
+ 스키마 `JOB_CHANGES`의 `_HIST` 테이블에 접미사를 추가합니다`HR_ARCHIVE`.
+ 스키마 `CREATED_AT`의 테이블에 `_TS` 있는 열`EMPLOYEE_SALARIES`에 접미사를 추가합니다`HR_ARCHIVE`.

```
{
  "rules": [
    {
      "rule-id": 9,
      "rule-type": "transformation",
      "rule-name": "add-suffix-schema-hr-archive",
      "rule-action": "add-suffix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "HR_ARCHIVE"
      },
      "value": "_HIST"
    },
    {
      "rule-id": 16,
      "rule-type": "transformation",
      "rule-name": "add-suffix-table-job-changes",
      "rule-action": "add-suffix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "HR_ARCHIVE",
        "table-name": "JOB_CHANGES"
      },
      "value": "_HIST"
    },
    {
      "rule-id": 44,
      "rule-type": "transformation",
      "rule-name": "add-suffix-column-created-at",
      "rule-action": "add-suffix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "HR_ARCHIVE",
        "table-name": "EMPLOYEE_SALARIES",
        "column-name": "CREATED_AT"
      },
      "value": "_TS"
    }
  ]
}
```

### 접미사 제거
<a name="sc-transformation-rules-examples-remove-suffix"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 `_FILES`에서 접미사를 제거합니다`LEGAL_FILES`.
+ 스키마 `_V1`의 테이블`CLAUSES_V1`에서 접미사를 제거합니다`LEGAL_FILES`.
+ 스키마 `_CODE`의 테이블에 `COUNTRY_CODE` 있는 열`CONTRACTS_V1`에서 접미사를 제거합니다`LEGAL_FILES`.

```
{
  "rules": [
    {
      "rule-id": 6,
      "rule-type": "transformation",
      "rule-name": "remove-suffix-schema-legal-files",
      "rule-action": "remove-suffix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "LEGAL_FILES"
      },
      "value": "_FILES"
    },
    {
      "rule-id": 14,
      "rule-type": "transformation",
      "rule-name": "remove-suffix-table-clauses-v1",
      "rule-action": "remove-suffix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "LEGAL_FILES",
        "table-name": "CLAUSES_V1"
      },
      "value": "_V1"
    },
    {
      "rule-id": 31,
      "rule-type": "transformation",
      "rule-name": "remove-suffix-column-country-code",
      "rule-action": "remove-suffix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "LEGAL_FILES",
        "table-name": "CONTRACTS_V1",
        "column-name": "COUNTRY_CODE"
      },
      "value": "_CODE"
    }
  ]
}
```

### 접미사 바꾸기
<a name="sc-transformation-rules-examples-replace-suffix"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 `_PROD`에서 접미사를 `_DEV`로 바꿉니다`REPORTING_DEV`.
+ 스키마 `_REPORT`의 테이블`MONTHLY_RPT`에서 접미사를 `_RPT`로 바꿉니다`REPORTING_DEV`.
+ 스키마 `_ID``_KEY`의 테이블`CUSTOMER_ID`에서 접미사를의 열`MONTHLY_RPT`로 바꿉니다`REPORTING_DEV`.

```
{
  "rules": [
    {
      "rule-id": 8,
      "rule-type": "transformation",
      "rule-name": "replace-suffix-schema-reporting-dev",
      "rule-action": "replace-suffix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "REPORTING_DEV"
      },
      "value": "_PROD",
      "old-value": "_DEV"
    },
    {
      "rule-id": 23,
      "rule-type": "transformation",
      "rule-name": "replace-suffix-table-monthly-rpt",
      "rule-action": "replace-suffix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "REPORTING_DEV",
        "table-name": "MONTHLY_RPT"
      },
      "value": "_REPORT",
      "old-value": "_RPT"
    },
    {
      "rule-id": 47,
      "rule-type": "transformation",
      "rule-name": "replace-suffix-column-customer-id",
      "rule-action": "replace-suffix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "REPORTING_DEV",
        "table-name": "MONTHLY_RPT",
        "column-name": "CUSTOMER_ID"
      },
      "value": "_KEY",
      "old-value": "_ID"
    }
  ]
}
```

### 대문자로 변환
<a name="sc-transformation-rules-examples-uppercase"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 이름의 모든 문자를 대문자`CRM_LEGACY`로 변환합니다.
+ 스키마의 테이블 이름`CUSTOMER_ACCOUNTS`에 있는 모든 문자를 대문자`CRM_LEGACY`로 변환합니다.
+ 스키마의 테이블 열 이름`FIRST_NAME`에 있는 모든 문자`CUSTOMER_ACCOUNTS`를 대문자`CRM_LEGACY`로 변환합니다.

```
{
  "rules": [
    {
      "rule-id": 4,
      "rule-type": "transformation",
      "rule-name": "convert-uppercase-schema-crm-legacy",
      "rule-action": "convert-uppercase",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "CRM_LEGACY"
      }
    },
    {
      "rule-id": 19,
      "rule-type": "transformation",
      "rule-name": "convert-uppercase-table-customer-accounts",
      "rule-action": "convert-uppercase",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "CRM_LEGACY",
        "table-name": "CUSTOMER_ACCOUNTS"
      }
    },
    {
      "rule-id": 36,
      "rule-type": "transformation",
      "rule-name": "convert-uppercase-column-first-name",
      "rule-action": "convert-uppercase",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "CRM_LEGACY",
        "table-name": "CUSTOMER_ACCOUNTS",
        "column-name": "FIRST_NAME"
      }
    }
  ]
}
```

### 소문자로 변환
<a name="sc-transformation-rules-examples-lowercase"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마 이름의 모든 문자를 소문자`LOGISTICS`로 변환합니다.
+ 스키마의 테이블 이름`SHIPMENT_ORDERS`에 있는 모든 문자를 소문자`LOGISTICS`로 변환합니다.
+ 스키마의 테이블 열 이름`DESTINATION_CITY`에 있는 모든 문자`SHIPMENT_ORDERS`를 소문자`LOGISTICS`로 변환합니다.

```
{
  "rules": [
    {
      "rule-id": 11,
      "rule-type": "transformation",
      "rule-name": "convert-lowercase-schema-logistics",
      "rule-action": "convert-lowercase",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "LOGISTICS"
      }
    },
    {
      "rule-id": 25,
      "rule-type": "transformation",
      "rule-name": "convert-lowercase-table-shipment-orders",
      "rule-action": "convert-lowercase",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "LOGISTICS",
        "table-name": "SHIPMENT_ORDERS"
      }
    },
    {
      "rule-id": 52,
      "rule-type": "transformation",
      "rule-name": "convert-lowercase-column-destination-city",
      "rule-action": "convert-lowercase",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "LOGISTICS",
        "table-name": "SHIPMENT_ORDERS",
        "column-name": "DESTINATION_CITY"
      }
    }
  ]
}
```

### 이름 바꾸기
<a name="sc-transformation-rules-examples-rename"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마의 이름을 `TEST_SCHEMA`로 바꿉니다`TEST_NEW_SCHEMA`.
+ 스키마`REGIONS`의 테이블 이름을 `HR`로 변경합니다`ORG_REGIONS`.
+ 스키마`CITY`의 테이블`LOCATIONS`에서 열 이름을 `HR`로 바꿉니다`ORG_CITY_NAME`.

```
{
  "rules": [
    {
      "rule-id": 2,
      "rule-type": "transformation",
      "rule-name": "rename-schema-test-schema",
      "rule-action": "rename",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "TEST_SCHEMA"
      },
      "value": "TEST_NEW_SCHEMA"
    },
    {
      "rule-id": 15,
      "rule-type": "transformation",
      "rule-name": "rename-table-hr-regions",
      "rule-action": "rename",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "HR",
        "table-name": "REGIONS"
      },
      "value": "ORG_REGIONS"
    },
    {
      "rule-id": 38,
      "rule-type": "transformation",
      "rule-name": "rename-column-hr-locations-city",
      "rule-action": "rename",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "HR",
        "table-name": "LOCATIONS",
        "column-name": "CITY"
      },
      "value": "ORG_CITY_NAME"
    }
  ]
}
```

### 열 데이터 유형 변경
<a name="sc-transformation-rules-examples-change-data-type-columns"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마의 테이블에 `SALARY` 있는 열의 데이터 형식을 정밀도 18 및 스케일 4`NUMBER`를 사용하여 `EMPLOYEES` `PAYROLL`에서 `DECIMAL`로 변경합니다.
+ 스키마의 테이블`NOTES`에서 열의 데이터 형식을 길이`EMPLOYEES`가 350`VARCHAR2`인 `PAYROLL`에서 `VARCHAR`로 변경합니다.
+ 스키마의 테이블에 `HIRE_DATE` 있는 열의 데이터 형식을 정밀도 `EMPLOYEES` 3`DATE`으로 `PAYROLL`에서 `TIMESTAMP WITH TIME ZONE`로 변경합니다.

```
{
  "rules": [
    {
      "rule-id": 10,
      "rule-type": "transformation",
      "rule-name": "change-datatype-column-salary",
      "rule-action": "change-data-type",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "PAYROLL",
        "table-name": "EMPLOYEES",
        "column-name": "SALARY"
      },
      "data-type": {
        "type": "DECIMAL",
        "precision": 18,
        "scale": 4
      }
    },
    {
      "rule-id": 29,
      "rule-type": "transformation",
      "rule-name": "change-datatype-column-notes",
      "rule-action": "change-data-type",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "PAYROLL",
        "table-name": "EMPLOYEES",
        "column-name": "NOTES"
      },
      "data-type": {
        "type": "VARCHAR",
        "length": 350
      }
    },
    {
      "rule-id": 56,
      "rule-type": "transformation",
      "rule-name": "change-datatype-column-hire-date",
      "rule-action": "change-data-type",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "PAYROLL",
        "table-name": "EMPLOYEES",
        "column-name": "HIRE_DATE"
      },
      "data-type": {
        "type": "TIMESTAMP WITH TIME ZONE",
        "precision": 3
      }
    }
  ]
}
```

### 파라미터 및 변수 데이터 유형 변경
<a name="sc-transformation-rules-examples-change-data-type-params"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마의 저장 프로시저`PROCESS_PAYMENT`에 `P_AMOUNT` 있는 파라미터의 데이터 유형을 `FINANCE`로 변경합니다`NUMERIC`.
+ 스키마의 저장 프로시저`V_TAX_RATE`에서 로컬 변수의 데이터 형식을 정밀도 `PROCESS_PAYMENT` 10 및 스케일 6`NUMERIC`으로 `FINANCE`로 변경합니다.
+ 스키마의 독립 실행형 함수`V_DESCRIPTION`에서 로컬 변수의 데이터 형식을 길이가 150인 `CALC_DISCOUNT` `FINANCE``CHARACTER`로 변경합니다.

```
{
  "rules": [
    {
      "rule-id": 7,
      "rule-type": "transformation",
      "rule-name": "change-datatype-param-p-amount",
      "rule-action": "change-data-type",
      "rule-target": "routine parameter",
      "object-locator": {
        "schema-name": "FINANCE",
        "procedure-name": "PROCESS_PAYMENT",
        "parameter-name": "P_AMOUNT"
      },
      "data-type": {
        "type": "NUMERIC"
      }
    },
    {
      "rule-id": 21,
      "rule-type": "transformation",
      "rule-name": "change-datatype-localvar-v-tax-rate",
      "rule-action": "change-data-type",
      "rule-target": "local variable",
      "object-locator": {
        "schema-name": "FINANCE",
        "procedure-name": "PROCESS_PAYMENT",
        "local-variable-name": "V_TAX_RATE"
      },
      "data-type": {
        "type": "NUMERIC",
        "precision": 10,
        "scale": 6
      }
    },
    {
      "rule-id": 43,
      "rule-type": "transformation",
      "rule-name": "change-datatype-localvar-v-description",
      "rule-action": "change-data-type",
      "rule-target": "local variable",
      "object-locator": {
        "schema-name": "FINANCE",
        "function-name": "CALC_DISCOUNT",
        "local-variable-name": "V_DESCRIPTION"
      },
      "data-type": {
        "type": "CHARACTER",
        "length": 150
      }
    }
  ]
}
```

### 함수 반환 데이터 유형 변경
<a name="sc-transformation-rules-examples-change-data-type-return"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마에서 독립 실행형 함수의 반환 데이터 유형을 `GET_PRODUCT_PRICE` `FNG_COMPANY`로 변경합니다`BIGINT`.
+ 스키마에서 독립 실행형 함수의 반환 데이터 유형을 `CALC_DISCOUNTED_PRICE` `FNG_COMPANY`로 변경합니다`DECIMAL`.
+ 스키마의 패키지 `CALCULATE_TAX` 내에서 패키징된 함수의 반환 데이터 유형을 `TAX_UTILS` `FNG_COMPANY`로 변경합니다`REAL`.

```
{
  "rules": [
    {
      "rule-id": 13,
      "rule-type": "transformation",
      "rule-name": "change-result-type-get-product-price",
      "rule-action": "change-data-type",
      "rule-target": "function result",
      "object-locator": {
        "schema-name": "FNG_COMPANY",
        "function-name": "GET_PRODUCT_PRICE"
      },
      "data-type": {
        "type": "BIGINT"
      }
    },
    {
      "rule-id": 28,
      "rule-type": "transformation",
      "rule-name": "change-result-calc-discounted-price",
      "rule-action": "change-data-type",
      "rule-target": "function result",
      "object-locator": {
        "schema-name": "FNG_COMPANY",
        "function-name": "CALC_DISCOUNTED_PRICE"
      },
      "data-type": {
        "type": "DECIMAL"
      }
    },
    {
      "rule-id": 61,
      "rule-type": "transformation",
      "rule-name": "change-result-type-calculate-tax",
      "rule-action": "change-data-type",
      "rule-target": "function result",
      "object-locator": {
        "schema-name": "FNG_COMPANY",
        "parent": "TAX_UTILS",
        "function-name": "CALCULATE_TAX"
      },
      "data-type": {
        "type": "REAL"
      }
    }
  ]
}
```

### 와일드카드 패턴
<a name="sc-transformation-rules-examples-wildcard"></a>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 이름이 로 시작하는 모든 스키마`MIGR_`에 접두사를 추가합니다`STG_`.
+ 이름이 로 시작하는 `MIGR_` 모든 스키마의 모든 테이블에 접두사를 추가합니다`STG_`.
+ 이름이 로 시작하는 `_NEW` 모든 스키마의 모든 테이블`SRC_`에서 이름이 로 시작하는 모든 열에 접미사를 추가합니다`STG_`.

```
{
  "rules": [
    {
      "rule-id": 8,
      "rule-type": "transformation",
      "rule-name": "add-prefix-schemas-starting-with-stg",
      "rule-action": "add-prefix",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "STG_%"
      },
      "value": "MIGR_"
    },
    {
      "rule-id": 33,
      "rule-type": "transformation",
      "rule-name": "add-prefix-all-tables-in-stg-schemas",
      "rule-action": "add-prefix",
      "rule-target": "table",
      "object-locator": {
        "schema-name": "STG_%",
        "table-name": "%"
      },
      "value": "MIGR_"
    },
    {
      "rule-id": 57,
      "rule-type": "transformation",
      "rule-name": "add-suffix-columns-starting-with-src",
      "rule-action": "add-suffix",
      "rule-target": "column",
      "object-locator": {
        "schema-name": "STG_%",
        "table-name": "%",
        "column-name": "SRC_%"
      },
      "value": "_NEW"
    }
  ]
}
```