

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Reglas de transformación en la conversión de esquemas de DMS
<a name="sc-transformation-rules"></a>

*Las reglas de transformación* le permiten personalizar la forma en que DMS Schema Conversion convierte los objetos de su base de datos, anulando las asignaciones de nombres y tipos de datos predeterminadas. Puede aplicar estas reglas a bases de datos, esquemas, tablas, vistas, columnas, valores devueltos por funciones, parámetros de rutina y variables locales.

Por ejemplo, suponga que tiene un conjunto de tablas en el esquema de origen denominado `test_TABLE_NAME`. Puede configurar una regla que cambie el prefijo `test_` por el prefijo `demo_` del esquema de destino.

Puede crear reglas de transformación que realicen las siguientes tareas:
+ Agregar, eliminar o reemplazar un prefijo
+ Agregar, eliminar o reemplazar un sufijo
+ Cambie el tipo de datos de una columna, el valor devuelto por la función, el parámetro de rutina o la variable local
+ Convierte el nombre del objeto a minúsculas o mayúsculas
+ Cambie el nombre de un objeto

## Creación de reglas de transformación
<a name="sc-transformation-rules-create"></a>

La conversión de esquemas del DMS almacena las reglas de transformación como parte del proyecto de migración. Para definir las reglas de transformación, páselas como una cadena JSON que contenga un objeto con una `rules` matriz cuando cree o modifique un proyecto de migración. Cada elemento de la matriz representa un objeto de regla independiente. Un proyecto de migración admite hasta 512 reglas de transformación (128 KB como máximo).

La estructura de la matriz con las reglas de transformación es la siguiente:

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

Puede agregar varias reglas de transformación al proyecto. La conversión de esquemas del DMS aplica las reglas de transformación durante la conversión en el mismo orden en que las agregó.

Si varias reglas se dirigen al mismo objeto, el comportamiento depende del tipo de acción. Todas las reglas con diferentes tipos de acción entran en vigor. Por ejemplo, se aplican tanto una `add-suffix` regla como una regla. `add-prefix` Las reglas con el mismo tipo de acción se anulan entre sí y solo entra en vigor la última.

Para crear reglas de transformación, utilice uno de los métodos siguientes.

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

**Para crear reglas de transformación mediante la consola**

1. En la página **Crear proyecto de migración**, elija **Agregar regla de transformación**. Para obtener más información, consulte [ Creación de proyectos de migración](migration-projects-create.md).

1. En **Rule target**, elija el tipo de objetos de base de datos a los que se aplica esta regla. El asistente de consola admite `schema` y `column` apunta. `table` Para utilizar otros destinos, como `database` o`view`, utilice el editor JSON de la consola o la AWS CLI.

1. Para **Esquema de origen**, elija **Escribir un esquema**. A continuación, especifique los esquemas, tablas y columnas de origen a los que se aplica esta regla. Puede usar un nombre exacto para seleccionar un objeto o usar un patrón con el signo de porcentaje (%) como comodín para que coincida con cualquier número de caracteres.

1. Para **Acción**, elija la tarea que desee realizar. 

1. En función de la acción de la regla, introduzca valores adicionales:
   + `add-prefix`o `add-suffix` — Introduzca el texto que desee añadir.
   + `remove-prefix`o `remove-suffix` — Introduzca el texto que desee eliminar.
   + `replace-prefix`o `replace-suffix` — Introduzca el texto existente y el texto de reemplazo.
   + `rename`— Introduzca el nuevo nombre del objeto.
   + `convert-uppercase`o `convert-lowercase` — No se requieren valores adicionales.
   + `change-data-type`— Introduzca el nombre del tipo de datos de destino y, si lo desea, la precisión, la escala o la longitud.

1. Elija **Agregar regla de transformación** para agregar otra regla de transformación.

   Cuando haya terminado de agregar reglas, elija **Crear proyecto de migración**.

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

Para añadir reglas de transformación mediante la AWS CLI, utilice el `--transformation-rules` parámetro con uno de los siguientes comandos:
+ [create-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/create-migration-project.html): al crear un nuevo proyecto de migración.
+ [modify-migration-project: para un proyecto de migración existente](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html).

El siguiente ejemplo agrega reglas de transformación a un proyecto de migración existente:

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

Para ejecutar este comando en una región de AWS específica, añada el `--region` parámetro, por ejemplo`--region us-west-2`.

------

Para editar, duplicar o eliminar las reglas de transformación existentes, consulte[Edición de reglas de transformación](#sc-transformation-rules-edit).

## Recuperación de reglas de transformación
<a name="sc-transformation-rules-obtain"></a>

Puede recuperar las reglas de transformación de un proyecto de migración de conversión de esquemas de DMS existente mediante la consola AWS de administración o la AWS CLI.

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

Para ver las reglas de transformación mediante la consola AWS de administración, seleccione **Modificar** en un proyecto de migración existente y revise la lista de reglas existentes en la sección **Reglas de transformación**.

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

Para recuperar las reglas de transformación de un proyecto de migración de conversión de esquemas de DMS existente, utilice el comando [describe-migration-projects](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-migration-projects.html). La respuesta utiliza el formato JSON e incluye las reglas de transformación asociadas al proyecto.

El siguiente ejemplo de AWS CLI recupera las reglas de transformación de un proyecto de migración:

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

------

## Edición de reglas de transformación
<a name="sc-transformation-rules-edit"></a>

Para editar, añadir o eliminar reglas de transformación en su proyecto de migración, utilice uno de los siguientes métodos.

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

**Edición de reglas de transformación**

1. Elija **Proyectos de migración** y, a continuación, elija el proyecto de migración.

1. Elija **Modificar** para editar la configuración del proyecto de migración.

1. Para **Reglas de transformación**, elija una de las siguientes acciones:
   + Seleccione **Añadir regla de transformación** para añadir una nueva regla de transformación.
   + Elija **Duplicar** para duplicar una regla de transformación existente y añadirla al final de la lista.
   + Elija **Eliminar** para eliminar la regla de transformación existente.
   + Elija la regla de transformación existente para editarla.

1. Cuando haya terminado de editar las reglas, elija **Guardar cambios**.

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

Para actualizar las reglas de transformación mediante la AWS CLI, utilice el comando [modify-migration-project con](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) el parámetro. `--transformation-rules` Pase el conjunto completo de reglas actualizado como una cadena JSON.

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

------

## Formato de regla de transformación
<a name="sc-transformation-rules-format"></a>

Una regla de transformación utiliza campos de objetos JSON para definir cómo convertir un objeto de origen en su equivalente de destino. Cada tipo de regla usa un conjunto específico de campos. Incluya solo los campos que se apliquen a su tarea.

El siguiente objeto JSON describe una regla de transformación de conversión de esquemas de 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}} ]
  } ]
}
```

En la siguiente tabla se describe cada parámetro.


| Parámetro | Valores posibles | Description (Descripción) | 
| --- | --- | --- | 
| rule-type | transformation | Un valor que aplica la regla a cada objeto especificado por el localizador de objetos.<br />Para todas las reglas de transformación, establézcalo en`transformation`.<br />Parámetro necesario. | 
| rule-id | Un valor numérico (entero). | Un único valor numérico para identificar la regla.<br />Parámetro necesario. | 
| rule-name | Un valor alfanumérico. | Un nombre exclusivo para identificar la regla.<br />Parámetro necesario. | 
| rule-action | add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type | La transformación que desea aplicar al objeto. Todas las acciones de las reglas de transformación distinguen entre mayúsculas y minúsculas.<br />Operaciones con prefijos:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />Operaciones con sufijos:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />conversión de mayúsculas y minúsculas[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />Modificación directa:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />Alcance: las operaciones de conversión de prefijos, sufijos, cambio de nombre y mayúsculas y minúsculas se pueden aplicar a esquemas, tablas y columnas.<br />La `change-data-type` operación solo se aplica a las columnas, los valores de retorno de las funciones, los parámetros de rutina y las variables locales.<br />Parámetro necesario. | 
| rule-target | database, schema, table, view, column, function result, routine parameter, local variable | El tipo de objeto al que se aplicará la regla.[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />Parámetro necesario. | 
| object-locator | Un objeto JSON. | Un objeto que identifica a qué objetos de la base de datos de origen se aplica la regla. Puede utilizar el signo de porcentaje (`%`) como comodín para todo o parte del valor de cada campo de `object-locator` objeto.<br />El objeto contiene los siguientes campos de cadena:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />Todos los nombres de objetos, como los nombres de tablas o columnas, de las reglas de transformación distinguen mayúsculas de minúsculas.<br />En las siguientes secciones se describe cada campo de objeto.<br />Parámetro necesario. | 
| object-locator \| database-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre de la base de datos de origen.<br />Aplicable a los proveedores de bases de datos en los que la arquitectura de la base de datos se origina en la base de datos como contenedor de objetos de nivel superior. Por ejemplo: Microsoft SQL Server, SAP ASE.<br />Campo de objeto JSON opcional. | 
| object-locator \| schema-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre del esquema de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| table-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre de la tabla de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| column-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre de la columna de la tabla de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| parent | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre del objeto de la base de datos de origen que es el padre del objeto especificado, por ejemplo, para `function-name` o`procedure-name`.<br />En las bases de datos de algunos proveedores, el objeto al que se aplica la regla puede estar subordinado y requerir la especificación de su objeto principal.<br />Por ejemplo, las funciones empaquetadas en Oracle, donde el padre es el nombre del paquete.<br />Campo de objeto JSON opcional. | 
| object-locator \| function-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre de la función de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| procedure-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | Nombre del procedimiento de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| parameter-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | Nombre del parámetro de procedimiento o función de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| local-variable-name | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El nombre de una variable local dentro de la función o el procedimiento de la base de datos de origen.<br />Campo de objeto JSON opcional. | 
| object-locator \| type | Un valor alfanumérico. | El nombre del tipo de datos de origen que debe coincidir. Utilice este campo para aplicar la regla únicamente a los objetos con un tipo de datos específico.<br />Campo de objeto JSON opcional. | 
| object-locator \| precision | Un valor numérico (entero). | La precisión del tipo de datos de origen que debe coincidir.<br />Campo de objeto JSON opcional. | 
| object-locator \| scale | Un valor numérico (entero). | La escala del tipo de datos de origen que debe coincidir.<br />Campo de objeto JSON opcional. | 
| object-locator \| length | Un valor numérico (entero). | La longitud del tipo de datos de origen que debe coincidir.<br />Campo de objeto JSON opcional. | 
| value | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de destino. | El valor de texto utilizado por la acción de transformación. Para `add-prefix` y`add-suffix`, especifica el texto que se va a añadir. Para `remove-prefix` y`remove-suffix`, especifica el texto que se va a eliminar. Para `replace-prefix` y`replace-suffix`, especifica el texto de reemplazo. Para`rename`, especifica el nombre nuevo.<br />Necesario para todas las acciones excepto `convert-uppercase``convert-lowercase`, y`change-data-type`. | 
| old-value | Un valor alfanumérico que sigue las reglas de nomenclatura de la base de datos de origen. | El valor existente que se va a buscar y reemplazar en el nombre del objeto. Necesario para acciones como `replace-prefix` y`replace-suffix`.<br />Parámetro opcional. | 
| data-type | Un objeto JSON. | Un objeto que describe las propiedades del tipo de datos de reemplazo cuando `rule-action` es`change-data-type`.<br />El objeto contiene los siguientes campos:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/dms/latest/userguide/sc-transformation-rules.html)<br />En las siguientes secciones se describe cada campo de objeto.<br />Parámetro opcional. | 
| data-type \| type | Un valor alfanumérico. | El nombre del tipo de datos de reemplazo para la columna de la base de datos de destino, si `rule-action` lo es`change-data-type`. Debe ser un tipo de datos de base de datos de destino válido.<br />Campo de objeto JSON obligatorio. | 
| data-type \| precision | Un valor numérico (entero). | La precisión del tipo de datos de reemplazo para la base de datos de destino, si `rule-action` es`change-data-type`.<br />Campo de objeto JSON opcional. | 
| data-type \| scale | Un valor numérico (entero). | La escala del tipo de datos de reemplazo para la base de datos de destino, si `rule-action` es`change-data-type`.<br />Campo de objeto JSON opcional. | 
| data-type \| length | Un valor numérico (entero). | La longitud del tipo de datos de reemplazo para la base de datos de destino, si `rule-action` es`change-data-type`.<br />Campo de objeto JSON opcional. | 

## Ejemplos de reglas de transformación
<a name="sc-transformation-rules-examples"></a>

Los siguientes ejemplos muestran el valor JSON del `--transformation-rules` parámetro para distintos tipos de reglas:

### Agregar un prefijo
<a name="sc-transformation-rules-examples-add-prefix"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Agregue un prefijo `DW_` al esquema`SALES`.
+ Agregue un prefijo `FACT_` a la tabla `ORDERS` del esquema. `SALES`
+ Agregue un prefijo `OLD_` a la columna de `UNIT_PRICE` la tabla `PRODUCTS` del 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_"
    }
  ]
}
```

### Eliminar un prefijo
<a name="sc-transformation-rules-examples-remove-prefix"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Elimina el prefijo `SRC_` del esquema`SRC_FINANCE`.
+ Elimina el prefijo `TMP_` de la tabla del esquema`TMP_INVOICES`. `SRC_FINANCE`
+ Elimina el prefijo `PAID_` de la columna de `PAID_AMOUNT` la tabla `TMP_PAYMENTS` del 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_"
    }
  ]
}
```

### Sustituir un prefijo
<a name="sc-transformation-rules-examples-replace-prefix"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Sustituya el prefijo `OLD_` por un `NEW_` esquema`OLD_INVENTORY`.
+ Sustituya el prefijo `STG_` por «`INT_`en la tabla» en `STG_WAREHOUSES` el esquema. `OLD_INVENTORY`
+ Reemplace el prefijo por `SRC_` una columna `TGT_` `SRC_WAREHOUSE_CODE` en la tabla `STG_WAREHOUSES` del 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_"
    }
  ]
}
```

### Añada un sufijo
<a name="sc-transformation-rules-examples-add-suffix"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Agregue un sufijo `_HIST` al esquema`HR_ARCHIVE`.
+ Agregue un sufijo `_HIST` a la tabla `JOB_CHANGES` del esquema. `HR_ARCHIVE`
+ Agregue un sufijo `_TS` a la columna de `CREATED_AT` la tabla `EMPLOYEE_SALARIES` del 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"
    }
  ]
}
```

### Quitar un sufijo
<a name="sc-transformation-rules-examples-remove-suffix"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Elimina el sufijo `_FILES` del esquema`LEGAL_FILES`.
+ Elimine el sufijo `_V1` de la tabla del esquema`CLAUSES_V1`. `LEGAL_FILES`
+ Elimine el sufijo `_CODE` de la columna de `COUNTRY_CODE` la tabla `CONTRACTS_V1` del 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"
    }
  ]
}
```

### Sustituir un sufijo
<a name="sc-transformation-rules-examples-replace-suffix"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Sustituya el sufijo por `_DEV` un `_PROD` esquema`REPORTING_DEV`.
+ Sustituya el sufijo `_RPT` por «`_REPORT`en la tabla» del `MONTHLY_RPT` esquema. `REPORTING_DEV`
+ Reemplace el sufijo por `_ID` una columna `_KEY` `CUSTOMER_ID` en la tabla `MONTHLY_RPT` del 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"
    }
  ]
}
```

### Cambiar a mayúsculas
<a name="sc-transformation-rules-examples-uppercase"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Convierte todos los caracteres del nombre del esquema `CRM_LEGACY` a mayúsculas.
+ Convierte todos los caracteres del nombre de la tabla `CUSTOMER_ACCOUNTS` del esquema `CRM_LEGACY` a mayúsculas.
+ Convierte todos los caracteres del nombre de la columna de `FIRST_NAME` la tabla `CUSTOMER_ACCOUNTS` del esquema `CRM_LEGACY` a mayú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"
      }
    }
  ]
}
```

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

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Convierte todos los caracteres del nombre del esquema `LOGISTICS` a minúsculas.
+ Convierte todos los caracteres del nombre de la tabla del esquema `SHIPMENT_ORDERS` `LOGISTICS` a minúsculas.
+ Convierte todos los caracteres del nombre de la columna de la `DESTINATION_CITY` tabla del esquema `SHIPMENT_ORDERS` `LOGISTICS` a 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"
      }
    }
  ]
}
```

### Cambio de nombre
<a name="sc-transformation-rules-examples-rename"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Cambie el nombre del esquema `TEST_SCHEMA` a. `TEST_NEW_SCHEMA`
+ Cambie el nombre de la tabla `REGIONS` del esquema `HR` a. `ORG_REGIONS`
+ Cambie el nombre de la columna de `CITY` la tabla `LOCATIONS` en el esquema `HR` a. `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"
    }
  ]
}
```

### Cambiar el tipo de datos de las columnas
<a name="sc-transformation-rules-examples-change-data-type-columns"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Cambie el tipo de datos de la columna de `SALARY` la tabla `EMPLOYEES` `PAYROLL` del esquema de `NUMBER` a `DECIMAL` con una precisión de 18 y una escala de 4.
+ Cambie el tipo de datos de la columna `NOTES` de la tabla `EMPLOYEES` `PAYROLL` del esquema de `VARCHAR2` a `VARCHAR` con una longitud de 350.
+ Cambie el tipo de datos de la columna `HIRE_DATE` de `EMPLOYEES` la tabla `PAYROLL` del esquema de `DATE` a `TIMESTAMP WITH TIME ZONE` con precisión 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
      }
    }
  ]
}
```

### Cambie el tipo de datos de parámetros y variables
<a name="sc-transformation-rules-examples-change-data-type-params"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Cambie el tipo de datos del parámetro `P_AMOUNT` `PROCESS_PAYMENT` en el procedimiento almacenado del esquema `FINANCE` a`NUMERIC`.
+ Cambie el tipo de datos de la variable local `V_TAX_RATE` `PROCESS_PAYMENT` en el procedimiento almacenado del esquema `FINANCE` a 10 `NUMERIC` con precisión y escala 6.
+ Cambie el tipo de datos de la variable local `V_DESCRIPTION` en la función `CALC_DISCOUNT` independiente del esquema `FINANCE` a una longitud `CHARACTER` de 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
      }
    }
  ]
}
```

### Cambie el tipo de datos de retorno de la función
<a name="sc-transformation-rules-examples-change-data-type-return"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Cambie el tipo de datos de retorno de la función independiente `GET_PRODUCT_PRICE` en el esquema `FNG_COMPANY` a`BIGINT`.
+ Cambie el tipo de datos de retorno de la función independiente `CALC_DISCOUNTED_PRICE` en el esquema `FNG_COMPANY` a. `DECIMAL`
+ Cambie el tipo de datos devueltos de la función empaquetada `CALCULATE_TAX` dentro del paquete del `TAX_UTILS` esquema `FNG_COMPANY` a`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"
      }
    }
  ]
}
```

### Patrones comodín
<a name="sc-transformation-rules-examples-wildcard"></a>

El siguiente ejemplo realiza estas acciones al convertir la base de datos de origen a la de destino:
+ Agregue un prefijo `MIGR_` a todos los esquemas cuyos nombres comiencen por. `STG_`
+ Agregue un prefijo `MIGR_` a todas las tablas de todos los esquemas cuyos nombres comiencen por. `STG_`
+ Agregue un sufijo `_NEW` a todas las columnas cuyos nombres comiencen por `SRC_` en todas las tablas de todos los esquemas cuyos nombres comiencen por. `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"
    }
  ]
}
```