

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

# 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}}", ]
    [ "view-name": "{{view_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 />접두사 작업:+  `add-prefix` - 이름의 시작 부분에 지정된 텍스트를 추가합니다. <br />+  `remove-prefix` - 이름의 시작 부분에서 지정된 텍스트를 제거합니다. <br />+  `replace-prefix` - 기존 접두사를 새 접두사로 바꿉니다. <br />접미사 작업:+  `add-suffix` - 이름 끝에 지정된 텍스트를 추가합니다. <br />+  `remove-suffix` - 이름 끝에서 지정된 텍스트를 제거합니다. <br />+  `replace-suffix` - 기존 접미사를 새 접미사로 바꿉니다. <br />사례 변환:+  `convert-uppercase` - 이름의 모든 문자를 대문자로 변환합니다. <br />+  `convert-lowercase` - 이름의 모든 문자를 소문자로 변환합니다. <br />직접 수정:+  `rename` - 이름을 완전히 새로 지정된 값으로 변경합니다. <br />+  `change-data-type` - 열 또는 로컬 변수의 데이터 형식을 다른 데이터 형식으로 수정합니다. <br />범위: 접두사, 접미사, 이름 바꾸기 및 대/소문자 변환 작업을 스키마, 테이블 및 열에 적용할 수 있습니다.<br />`change-data-type` 작업은 열, 함수 반환 값, 루틴 파라미터 및 로컬 변수에만 적용됩니다.<br />필수 파라미터. | 
| rule-target | database, schema, table, view, column, function result, routine parameter, local variable | 규칙이 적용될 객체의 유형입니다.+  `database` - 데이터베이스. <br />+  `schema` - 데이터베이스 스키마입니다. <br />+  `table` - 데이터베이스 테이블. <br />+  `view` - 데이터베이스 보기. <br />+  `column` - 데이터베이스 테이블 또는 뷰 열. <br />+  `function result` - 함수 반환 값입니다. <br />+  `routine parameter` - 저장 프로시저 또는 함수 파라미터입니다. <br />+  `local variable` - 저장 프로시저 또는 함수 내의 로컬 변수입니다. <br />필수 파라미터. | 
| object-locator | JSON 객체입니다. | 규칙이 적용되는 소스 데이터베이스 객체를 식별하는 객체입니다. 각 `object-locator` 객체 필드에서 값의 전체 또는 일부에 대해 백분율 기호(`%`)를 와일드카드로 사용할 수 있습니다.<br />객체에는 다음 문자열 필드가 포함됩니다.+  `database-name` <br />+  `schema-name` <br />+  `table-name` <br />+  `view-name` <br />+  `column-name` <br />+  `parent` <br />+  `function-name` <br />+  `procedure-name` <br />+  `parameter-name` <br />+  `local-variable-name` <br />+  `type` <br />+  `precision` <br />+  `scale` <br />+  `length` <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 \| view-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 보기의 이름입니다. 변환 규칙에 뷰를 객체로 포함하려면이 필드를 사용합니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| column-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 테이블 열의 이름입니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| parent | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | `function-name` 또는와 같이 지정된 객체의 상위인 소스 데이터베이스 객체의 이름입니다`procedure-name`.<br />이 필드는 Oracle에서 PostgreSQL 및 Aurora PostgreSQL로의 변환 경로에만 적용됩니다. 이 필드를 사용하여 패키징된 함수 또는 프로시저의 패키지 이름을 지정합니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| function-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 함수의 이름입니다.<br />이 필드는 Oracle에서 PostgreSQL 및 Aurora PostgreSQL로의 변환 경로에만 적용됩니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| procedure-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 프로시저의 이름입니다.<br />이 필드는 Oracle에서 PostgreSQL 및 Aurora PostgreSQL로의 변환 경로에만 적용됩니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| parameter-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 함수 또는 프로시저 파라미터의 이름입니다.<br />이 필드는 Oracle에서 PostgreSQL 및 Aurora PostgreSQL로의 변환 경로에만 적용됩니다.<br />선택적 JSON 객체 필드입니다. | 
| object-locator \| local-variable-name | 소스 데이터베이스의 이름 지정 규칙을 따르는 영숫자 값입니다. | 소스 데이터베이스 함수 또는 프로시저 내의 로컬 변수 이름입니다.<br />이 필드는 Oracle에서 PostgreSQL 및 Aurora PostgreSQL로의 변환 경로에만 적용됩니다.<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 /> 객체는 다음 필드를 포함합니다.+  `type` : 문자열 <br />+  `precision` : 숫자 <br />+  `scale` : 숫자 <br />+  `length` : 숫자 <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`에 있는 테이블의 열 데이터 유형을 정밀도 `EMPLOYEES` 18 및 스케일 4로 `PAYROLL`에서 `NUMBER``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>

다음 예제에서는 소스에서 대상 데이터베이스로 변환할 때 이러한 작업을 수행합니다.
+ 스키마의 저장 프로시저`P_AMOUNT`에 있는 파라미터의 데이터 유형을 `PROCESS_PAYMENT` `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"
    }
  ]
}
```