

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Regras de transformação na conversão do esquema DMS
<a name="sc-transformation-rules"></a>

*As regras de transformação* permitem que você personalize como a Conversão de Esquema do DMS converte seus objetos de banco de dados, substituindo a nomenclatura padrão e os mapeamentos de tipo de dados. Você pode aplicar essas regras a bancos de dados, esquemas, tabelas, visualizações, colunas, valores de retorno de funções, parâmetros de rotina e variáveis locais.

Por exemplo, suponha que você tenha um conjunto de tabelas no esquema de origem chamado `test_TABLE_NAME`. É possível configurar uma regra que altera o prefixo `test_` para o prefixo `demo_` no esquema de destino.

É possível criar regras de transformação que executam as seguintes tarefas:
+ Adicionar, remover ou substituir um prefixo
+ Adicionar, remover ou substituir um sufixo
+ Alterar o tipo de dados de uma coluna, valor de retorno da função, parâmetro de rotina ou variável local
+ Converter o nome do objeto em minúsculas ou maiúsculas
+ Renomear um objeto

## Criar regras de transformação
<a name="sc-transformation-rules-create"></a>

A DMS Schema Conversion armazena regras de transformação como parte do projeto de migração. Para definir regras de transformação, passe-as como uma string JSON que contém um objeto com uma `rules` matriz ao criar ou modificar um projeto de migração. Cada elemento na matriz representa um objeto de regra separado. Um projeto de migração oferece suporte a até 512 regras de transformação (máximo de 128 KB).

A estrutura da matriz com regras de transformação é a seguinte:

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

É possível adicionar várias regras de transformação no projeto. A DMS Schema Conversion aplica as regras de transformação durante a conversão na mesma ordem em que são adicionadas.

Se várias regras tiverem como alvo o mesmo objeto, o comportamento dependerá do tipo de ação. Todas as regras com diferentes tipos de ação entram em vigor. Por exemplo, uma `add-prefix` regra e uma `add-suffix` regra se aplicam. Regras com o mesmo tipo de ação se substituem e somente a última entra em vigor.

Para criar regras de transformação, use um dos métodos a seguir.

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

**Para criar regras de transformação usando o console**

1. Na página **Criar projeto de migração**, escolha **Adicionar regra de transformação**. Para obter mais informações, consulte [ Criar projetos de migração](migration-projects-create.md).

1. **Em Destino da regra**, escolha o tipo de objetos de banco de dados aos quais essa regra se aplica. O assistente do console oferece suporte `schema` `table` e `column` alvos. Para usar outros destinos, como `database` ou`view`, use o editor JSON no console ou na AWS CLI.

1. Em **Esquema de origem**, escolha **Inserir um esquema**. Em seguida, especifique os esquemas, tabelas e colunas de origem aos quais essa regra se aplica. Você pode usar um nome exato para selecionar um objeto ou usar um padrão com o sinal de porcentagem (%) como curinga para corresponder a qualquer número de caracteres.

1. Em **Ação**, escolha a tarefa a ser executada. 

1. Dependendo da ação da regra, insira valores adicionais:
   + `add-prefix`ou `add-suffix` — Insira o texto a ser adicionado.
   + `remove-prefix`ou `remove-suffix` — Insira o texto a ser removido.
   + `replace-prefix`ou `replace-suffix` — Insira o texto existente e o texto substituto.
   + `rename`— Insira o novo nome para o objeto.
   + `convert-uppercase`ou `convert-lowercase` — Não são necessários valores adicionais.
   + `change-data-type`— Insira o nome do tipo de dados de destino e, opcionalmente, a precisão, a escala ou o comprimento.

1. Escolha **Adicionar regra de transformação** para adicionar outra regra de transformação.

   Ao concluir a adição de regras, escolha **Criar projeto de migração**.

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

Para adicionar regras de transformação usando a AWS CLI, use o `--transformation-rules` parâmetro com um dos seguintes comandos:
+ [create-migration-project — Ao criar um novo projeto](https://docs.aws.amazon.com/cli/latest/reference/dms/create-migration-project.html) de migração.
+ [modify-migration-project — Para um projeto](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) de migração existente.

O exemplo a seguir adiciona regras de transformação a um projeto de migração existente:

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

Para executar esse comando em uma região específica da AWS, adicione o `--region` parâmetro, por exemplo`--region us-west-2`.

------

Para editar, duplicar ou remover as regras de transformação existentes, consulte[Editar regras de transformação](#sc-transformation-rules-edit).

## Recuperando regras de transformação
<a name="sc-transformation-rules-obtain"></a>

Você pode recuperar as regras de transformação de um projeto existente de migração do DMS Schema Conversion usando o AWS Management Console ou a CLI. AWS 

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

Para visualizar as regras de transformação usando o AWS Management Console, escolha **Modificar** em um projeto de migração existente e revise a lista de regras existentes na seção **Regras de transformação**.

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

[Para recuperar as regras de transformação de um projeto existente de migração do DMS Schema Conversion, use o comando describe-migration-projects.](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-migration-projects.html) A resposta usa o formato JSON e inclui as regras de transformação associadas ao projeto.

O exemplo de AWS CLI a seguir recupera as regras de transformação de um projeto de migração:

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

------

## Editar regras de transformação
<a name="sc-transformation-rules-edit"></a>

Para editar, adicionar ou remover regras de transformação em seu projeto de migração, use um dos métodos a seguir.

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

**Como editar regras de transformação**

1. Escolha **Projetos de migração** e escolha o projeto de migração.

1. Escolha **Modificar** para editar as configurações do projeto de migração.

1. Em **Regas de transformação**, escolha uma das seguintes ações:
   + Escolha **Adicionar regra de transformação** para adicionar uma nova regra de transformação.
   + Escolha **Duplicar** para duplicar uma regra de transformação existente e adicioná-la ao final da lista.
   + Escolha **Remover** para remover uma regra de transformação existente.
   + Escolha a regra de transformação existente para editá-la.

1. Ao concluir a edição das regras, escolha **Salvar alterações**.

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

Para atualizar as regras de transformação usando a AWS CLI, use o comando [modify-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) com o parâmetro. `--transformation-rules` Passe o conjunto completo de regras atualizado como uma string JSON.

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

------

## Formato da regra de transformação
<a name="sc-transformation-rules-format"></a>

Uma regra de transformação usa campos de objeto JSON para definir como converter um objeto de origem em seu equivalente de destino. Cada tipo de regra usa um conjunto específico de campos. Inclua somente os campos que se aplicam à sua tarefa.

O objeto JSON a seguir descreve uma regra de transformação de conversão de esquema do DMS:

```
{
  "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}} ]
  } ]
}
```

A tabela a seguir descreve cada parâmetro.


| Parâmetro | Possíveis valores | Description | 
| --- | --- | --- | 
| rule-type | transformation | Um valor que aplica a regra a cada objeto especificado pelo localizador de objetos.<br />Para todas as regras de transformação, defina isso como`transformation`.<br />Parâmetro necessário. | 
| rule-id | Um valor numérico (inteiro). | Um valor numérico exclusivo para identificar a regra.<br />Parâmetro necessário. | 
| rule-name | Um valor alfanumérico. | Um nome exclusivo para identificar a regra.<br />Parâmetro necessário. | 
| rule-action | add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type | A transformação que você quer aplicar ao objeto. Todas as ações de regra de transformação diferenciam maiúsculas e minúsculas.<br />Operações de prefixo:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />Operações de sufixo:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />Conversão de casos:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />Modificação direta:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />Escopo: operações de prefixo, sufixo, renomeação e conversão de maiúsculas e minúsculas podem ser aplicadas a esquemas, tabelas e colunas.<br />A `change-data-type` operação se aplica somente a colunas, valores de retorno de funções, parâmetros de rotina e variáveis locais.<br />Parâmetro necessário. | 
| rule-target | database, schema, table, view, column, function result, routine parameter, local variable | O tipo de objeto ao qual a regra será aplicada.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />Parâmetro necessário. | 
| object-locator | Um objeto JSON. | Um objeto que identifica a quais objetos do banco de dados de origem a regra se aplica. Você pode usar o sinal de porcentagem (`%`) como um curinga para todo ou parte do valor em cada campo do `object-locator` objeto.<br />O objeto contém os seguintes campos de string:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />Todos os nomes de objetos, como nomes de tabelas ou colunas, nas regras de transformação diferenciam maiúsculas de minúsculas.<br />As seções a seguir descrevem cada campo do objeto.<br />Parâmetro necessário. | 
| object-locator \| database-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome do banco de dados de origem.<br />Aplicável para fornecedores de banco de dados em que a arquitetura do banco de dados se origina do banco de dados como o contêiner de objetos de nível superior. Por exemplo: Microsoft SQL Server, SAP ASE.<br />Campo de objeto JSON opcional. | 
| object-locator \| schema-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome do esquema do banco de dados de origem.<br />Campo de objeto JSON opcional. | 
| object-locator \| table-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome da tabela do banco de dados de origem.<br />Campo de objeto JSON opcional. | 
| object-locator \| column-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome da coluna da tabela do banco de dados de origem.<br />Campo de objeto JSON opcional. | 
| object-locator \| parent | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome do objeto do banco de dados de origem que é o pai do objeto especificado, por exemplo, para o `function-name` ou`procedure-name`.<br />Em bancos de dados de alguns fornecedores, o objeto ao qual a regra é aplicada pode estar subordinado e exigir a especificação de seu pai.<br />Por exemplo, funções empacotadas no Oracle, em que o pai é o nome do pacote.<br />Campo de objeto JSON opcional. | 
| object-locator \| function-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome da função do banco de dados de origem.<br />Campo de objeto JSON opcional. | 
| object-locator \| procedure-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome do procedimento do banco de dados de origem.<br />Campo de objeto JSON opcional. | 
| object-locator \| parameter-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome da função do banco de dados de origem ou do parâmetro do procedimento.<br />Campo de objeto JSON opcional. | 
| object-locator \| local-variable-name | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O nome de uma variável local na função ou procedimento do banco de dados de origem.<br />Campo de objeto JSON opcional. | 
| object-locator \| type | Um valor alfanumérico. | O nome do tipo de dados de origem a ser correspondente. Use esse campo para aplicar a regra somente a objetos com um tipo de dados específico.<br />Campo de objeto JSON opcional. | 
| object-locator \| precision | Um valor numérico (inteiro). | A precisão do tipo de dados de origem a ser correspondente.<br />Campo de objeto JSON opcional. | 
| object-locator \| scale | Um valor numérico (inteiro). | A escala do tipo de dados de origem a ser correspondente.<br />Campo de objeto JSON opcional. | 
| object-locator \| length | Um valor numérico (inteiro). | O comprimento do tipo de dados de origem a ser correspondente.<br />Campo de objeto JSON opcional. | 
| value | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de destino. | O valor do texto usado pela ação de transformação. Para `add-prefix` e`add-suffix`, especifica o texto a ser adicionado. Para `remove-prefix` e`remove-suffix`, especifica o texto a ser removido. Para `replace-prefix` e`replace-suffix`, especifica o texto de substituição. Para`rename`, especifica o novo nome.<br />Obrigatório para todas as ações `convert-uppercase``convert-lowercase`, exceto, `change-data-type` e. | 
| old-value | Um valor alfanumérico que segue as regras de nomenclatura do banco de dados de origem. | O valor existente a ser encontrado e substituído no nome do objeto. Necessário para ações como `replace-prefix` `replace-suffix` e.<br />Parâmetro opcional. | 
| data-type | Um objeto JSON. | Um objeto que descreve as propriedades do tipo de dados de substituição quando `rule-action` é`change-data-type`.<br />O objeto contém os campos a seguir.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/sc-transformation-rules.html)<br />As seções a seguir descrevem cada campo do objeto.<br />Parâmetro opcional. | 
| data-type \| type | Um valor alfanumérico. | O nome do tipo de dados de substituição para a coluna do banco de dados de destino, se `rule-action` for`change-data-type`. Deve ser um tipo de dados de banco de dados de destino válido.<br />Campo de objeto JSON obrigatório. | 
| data-type \| precision | Um valor numérico (inteiro). | A precisão do tipo de dados de substituição para o banco de dados de destino, se `rule-action` for`change-data-type`.<br />Campo de objeto JSON opcional. | 
| data-type \| scale | Um valor numérico (inteiro). | A escala do tipo de dados de substituição para o banco de dados de destino, se `rule-action` for`change-data-type`.<br />Campo de objeto JSON opcional. | 
| data-type \| length | Um valor numérico (inteiro). | O tamanho do tipo de dados de substituição para o banco de dados de destino, se `rule-action` for`change-data-type`.<br />Campo de objeto JSON opcional. | 

## Exemplos de regras de transformação
<a name="sc-transformation-rules-examples"></a>

Os exemplos a seguir mostram o valor JSON do `--transformation-rules` parâmetro para diferentes tipos de regras:

### Adicionar um prefixo
<a name="sc-transformation-rules-examples-add-prefix"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Adicione prefixo `DW_` ao esquema`SALES`.
+ Adicione prefixo `FACT_` à tabela `ORDERS` no esquema`SALES`.
+ Adicione prefixo `OLD_` à coluna `UNIT_PRICE` na tabela `PRODUCTS` no esquema`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_"
    }
  ]
}
```

### Remover um prefixo
<a name="sc-transformation-rules-examples-remove-prefix"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Remova o prefixo `SRC_` do esquema`SRC_FINANCE`.
+ Remova o prefixo `TMP_` da tabela `TMP_INVOICES` no esquema`SRC_FINANCE`.
+ Remova o prefixo `PAID_` da coluna `PAID_AMOUNT` na tabela `TMP_PAYMENTS` no esquema`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_"
    }
  ]
}
```

### Substituir um prefixo
<a name="sc-transformation-rules-examples-replace-prefix"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Substitua o prefixo `OLD_` pelo esquema `NEW_` `OLD_INVENTORY` in.
+ Substitua o `STG_` prefixo pela tabela `INT_` `STG_WAREHOUSES` no esquema`OLD_INVENTORY`.
+ Substitua o `SRC_` prefixo pela coluna `TGT_` `SRC_WAREHOUSE_CODE` na tabela `STG_WAREHOUSES` no esquema`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_"
    }
  ]
}
```

### Adicionar um sufixo
<a name="sc-transformation-rules-examples-add-suffix"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Adicione um sufixo `_HIST` ao esquema`HR_ARCHIVE`.
+ Adicione um sufixo `_HIST` à tabela `JOB_CHANGES` no esquema`HR_ARCHIVE`.
+ Adicione sufixo `_TS` à coluna `CREATED_AT` na tabela `EMPLOYEE_SALARIES` no esquema`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"
    }
  ]
}
```

### Remover um sufixo
<a name="sc-transformation-rules-examples-remove-suffix"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Remova o sufixo `_FILES` do esquema`LEGAL_FILES`.
+ Remova o sufixo `_V1` da tabela `CLAUSES_V1` no esquema`LEGAL_FILES`.
+ Remova o sufixo `_CODE` da coluna `COUNTRY_CODE` na tabela `CONTRACTS_V1` no esquema`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"
    }
  ]
}
```

### Substituir um sufixo
<a name="sc-transformation-rules-examples-replace-suffix"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Substitua o sufixo `_DEV` pelo esquema `_PROD` `REPORTING_DEV` in.
+ Substitua o sufixo `_RPT` pela tabela `_REPORT` `MONTHLY_RPT` no esquema`REPORTING_DEV`.
+ Substitua o sufixo `_ID` pela coluna `_KEY` `CUSTOMER_ID` na tabela `MONTHLY_RPT` no esquema`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"
    }
  ]
}
```

### Converter em maiúsculas
<a name="sc-transformation-rules-examples-uppercase"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Converta todos os caracteres do nome do esquema em `CRM_LEGACY` maiúsculas.
+ Converta todos os caracteres do nome da tabela `CUSTOMER_ACCOUNTS` no esquema em `CRM_LEGACY` maiúsculas.
+ Converta todos os caracteres no nome da coluna `FIRST_NAME` na tabela no esquema `CUSTOMER_ACCOUNTS` em `CRM_LEGACY` maiúsculas.

```
{
  "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"
      }
    }
  ]
}
```

### Converter para minúsculas
<a name="sc-transformation-rules-examples-lowercase"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Converta todos os caracteres do nome do esquema `LOGISTICS` em minúsculas.
+ Converta todos os caracteres do nome da tabela `SHIPMENT_ORDERS` no esquema `LOGISTICS` em minúsculas.
+ Converta todos os caracteres no nome da coluna `DESTINATION_CITY` na tabela `SHIPMENT_ORDERS` no esquema `LOGISTICS` para minúsculas.

```
{
  "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"
      }
    }
  ]
}
```

### Renomear
<a name="sc-transformation-rules-examples-rename"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Renomeie o esquema `TEST_SCHEMA` para. `TEST_NEW_SCHEMA`
+ Renomeie a tabela `REGIONS` no esquema `HR` para. `ORG_REGIONS`
+ Renomeie a coluna `CITY` na tabela `LOCATIONS` no esquema `HR` para. `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"
    }
  ]
}
```

### Change column data type
<a name="sc-transformation-rules-examples-change-data-type-columns"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Altere o tipo de dados da coluna `SALARY` `EMPLOYEES` na tabela no esquema `PAYROLL` de `NUMBER` para `DECIMAL` com precisão 18 e escala 4.
+ Altere o tipo de dados da coluna `NOTES` `EMPLOYEES` na tabela no esquema `PAYROLL` de `VARCHAR2` para `VARCHAR` com comprimento 350.
+ Altere o tipo de dados da coluna `HIRE_DATE` `EMPLOYEES` na tabela no esquema `PAYROLL` de `DATE` para `TIMESTAMP WITH TIME ZONE` com precisão 3.

```
{
  "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
      }
    }
  ]
}
```

### Alterar o parâmetro e o tipo de dados da variável
<a name="sc-transformation-rules-examples-change-data-type-params"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Altere o tipo de dados do parâmetro `P_AMOUNT` no procedimento armazenado `PROCESS_PAYMENT` no esquema `FINANCE` para`NUMERIC`.
+ Altere o tipo de dados da variável local `V_TAX_RATE` no procedimento armazenado `PROCESS_PAYMENT` no esquema `FINANCE` para `NUMERIC` com precisão 10 e escala 6.
+ Altere o tipo de dados da variável local `V_DESCRIPTION` na função autônoma `CALC_DISCOUNT` no esquema `FINANCE` para `CHARACTER` com comprimento 150.

```
{
  "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
      }
    }
  ]
}
```

### Alterar o tipo de dados de retorno da função
<a name="sc-transformation-rules-examples-change-data-type-return"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Altere o tipo de dados de retorno da função autônoma `GET_PRODUCT_PRICE` no esquema `FNG_COMPANY` para. `BIGINT`
+ Altere o tipo de dados de retorno da função autônoma `CALC_DISCOUNTED_PRICE` no esquema `FNG_COMPANY` para. `DECIMAL`
+ Altere o tipo de dados de retorno da função empacotada `CALCULATE_TAX` dentro do pacote `TAX_UTILS` no esquema `FNG_COMPANY` para. `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"
      }
    }
  ]
}
```

### Padrões curinga
<a name="sc-transformation-rules-examples-wildcard"></a>

O exemplo a seguir executa essas ações ao converter do banco de dados de origem para o de destino:
+ Adicione prefixo `MIGR_` a todos os esquemas cujos nomes comecem com. `STG_`
+ Adicione prefixo `MIGR_` a todas as tabelas em todos os esquemas cujos nomes comecem com. `STG_`
+ Adicione sufixo `_NEW` a todas as colunas cujos nomes comecem com `SRC_` em todas as tabelas em todos os esquemas cujos nomes comecem com. `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"
    }
  ]
}
```