

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Règles de transformation dans DMS Schema Conversion
<a name="sc-transformation-rules"></a>

*Les règles de transformation* vous permettent de personnaliser la façon dont DMS Schema Conversion convertit les objets de votre base de données, en remplaçant les mappages de noms et de types de données par défaut. Vous pouvez appliquer ces règles aux bases de données, aux schémas, aux tables, aux vues, aux colonnes, aux valeurs renvoyées par les fonctions, aux paramètres de routine et aux variables locales.

Supposons par exemple que vous disposiez d’un ensemble de tables dans votre schéma source nommé `test_TABLE_NAME`. Vous pouvez configurer une règle qui remplace le préfixe `test_` par le préfixe `demo_` dans le schéma cible.

Vous pouvez créer des règles de transformation qui effectuent les tâches suivantes :
+ Ajouter, supprimer ou remplacer un préfixe
+ Ajouter, supprimer ou remplacer un suffixe
+ Modifier le type de données d'une colonne, d'une valeur de retour d'une fonction, d'un paramètre de routine ou d'une variable locale
+ Convertir le nom de l'objet en minuscules ou en majuscules
+ Renommer un objet

## Création de règles de transformation
<a name="sc-transformation-rules-create"></a>

La conversion de schéma DMS stocke les règles de transformation dans le cadre de votre projet de migration. Pour définir des règles de transformation, transmettez-les sous forme de chaîne JSON contenant un objet avec un `rules` tableau lorsque vous créez ou modifiez un projet de migration. Chaque élément du tableau représente un objet de règle distinct. Un projet de migration prend en charge jusqu'à 512 règles de transformation (128 Ko maximum).

La structure du tableau avec les règles de transformation est la suivante :

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

Vous pouvez ajouter plusieurs règles de transformation dans votre projet. La conversion de schéma DMS applique les règles de transformation lors de la conversion dans l’ordre dans lequel vous les avez ajoutées.

Si plusieurs règles ciblent le même objet, le comportement dépend du type d'action. Les règles comportant différents types d'actions entrent toutes en vigueur. Par exemple, une `add-prefix` règle et une `add-suffix` règle s'appliquent toutes les deux. Les règles comportant le même type d'action se remplacent les unes les autres, et seule la dernière prend effet.

Pour créer des règles de transformation, appliquez l'une des méthodes suivantes.

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

**Pour créer des règles de transformation à l'aide de la console**

1. Sur la page **Créer un projet de migration**, choisissez **Ajouter une règle de transformation**. Pour de plus amples informations, veuillez consulter [ Création de projets de migration](migration-projects-create.md).

1. Pour la **cible de la règle**, choisissez le type d'objets de base de données auxquels cette règle s'applique. L'assistant de console prend en charge `schema``table`, et `column` cible. Pour utiliser d'autres cibles telles que `database` ou`view`, utilisez l'éditeur JSON de la console ou de la AWS CLI.

1. Pour **Schéma source**, choisissez **Entrer un schéma**. Spécifiez ensuite les schémas source, les tables et les colonnes auxquels cette règle s'applique. Vous pouvez utiliser un nom exact pour sélectionner un objet ou utiliser un modèle avec le signe du pourcentage (%) comme caractère générique pour correspondre à un nombre quelconque de caractères.

1. Pour **Action**, choisissez la tâche à effectuer. 

1. En fonction de l'action de la règle, entrez des valeurs supplémentaires :
   + `add-prefix`ou `add-suffix` — Entrez le texte à ajouter.
   + `remove-prefix`ou `remove-suffix` — Entrez le texte à supprimer.
   + `replace-prefix`ou `replace-suffix` — Entrez le texte existant et le texte de remplacement.
   + `rename`— Entrez le nouveau nom de l'objet.
   + `convert-uppercase`ou `convert-lowercase` — Aucune valeur supplémentaire n'est requise.
   + `change-data-type`— Entrez le nom du type de données cible, et éventuellement la précision, l'échelle ou la longueur.

1. Choisissez **Ajouter une règle de transformation** pour ajouter une autre règle de transformation.

   Une fois que vous avez terminé d’ajouter des règles, choisissez **Créer un projet de migration**.

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

Pour ajouter des règles de transformation à l'aide de la AWS CLI, utilisez le `--transformation-rules` paramètre avec l'une des commandes suivantes :
+ [create-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/create-migration-project.html) — Lors de la création d'un nouveau projet de migration.
+ [modify-migration-project — Pour un projet](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) de migration existant.

L'exemple suivant ajoute des règles de transformation à un projet de migration existant :

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

Pour exécuter cette commande dans une région AWS spécifique, ajoutez le `--region` paramètre, par exemple`--region us-west-2`.

------

Pour modifier, dupliquer ou supprimer des règles de transformation existantes, consultez[Modification de règles de transformation](#sc-transformation-rules-edit).

## Récupération des règles de transformation
<a name="sc-transformation-rules-obtain"></a>

Vous pouvez récupérer les règles de transformation d'un projet de migration de schéma DMS existant à l'aide de la console AWS de gestion ou de la AWS CLI.

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

Pour consulter les règles de transformation à l'aide de la console de AWS gestion, choisissez **Modifier** sur un projet de migration existant et consultez la liste des règles existantes dans la section **Règles de transformation**.

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

Pour récupérer les règles de transformation d'un projet de migration de schéma DMS existant, utilisez la commande [describe-migration-projects](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-migration-projects.html). La réponse utilise le format JSON et inclut les règles de transformation associées au projet.

L'exemple de AWS CLI suivant extrait les règles de transformation d'un projet de migration :

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

------

## Modification de règles de transformation
<a name="sc-transformation-rules-edit"></a>

Pour modifier, ajouter ou supprimer des règles de transformation dans votre projet de migration, appliquez l'une des méthodes suivantes.

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

**Pour modifier des règles de transformation**

1. Choisissez **Projets de migration**, puis choisissez votre projet de migration.

1. Choisissez **Modifier** pour modifier les paramètres de votre projet de migration.

1. Pour **Règles de transformation**, choisissez l’une des actions suivantes :
   + Choisissez **Ajouter une règle de transformation** pour ajouter une nouvelle règle de transformation.
   + Choisissez **Dupliquer** pour dupliquer une règle de transformation existante et ajoutez-la à la fin de la liste.
   + Choisissez **Supprimer** pour supprimer une règle de transformation existante.
   + Choisissez la règle de transformation existante pour la modifier.

1. Une fois que vous avez terminé de modifier les règles, choisissez **Enregistrer les modifications**.

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

Pour mettre à jour les règles de transformation à l'aide de la AWS CLI, utilisez la commande [modify-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) avec le paramètre. `--transformation-rules` Transmettez l'ensemble complet des règles mises à jour sous forme de chaîne JSON.

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

------

## Format des règles de transformation
<a name="sc-transformation-rules-format"></a>

Une règle de transformation utilise des champs d'objet JSON pour définir comment convertir un objet source en son équivalent cible. Chaque type de règle utilise un ensemble de champs spécifique. N'incluez que les champs qui s'appliquent à votre tâche.

L'objet JSON suivant décrit une règle de transformation de schéma 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}} ]
  } ]
}
```

Le tableau suivant décrit chaque paramètre.


| Paramètre | Valeurs possibles | Description | 
| --- | --- | --- | 
| rule-type | transformation | Valeur qui applique la règle à chaque objet spécifié par le localisateur d'objets.<br />Pour toutes les règles de transformation, définissez cette valeur sur`transformation`.<br />Paramètre obligatoire. | 
| rule-id | Une valeur numérique (entier). | Valeur numérique unique pour identifier la règle.<br />Paramètre obligatoire. | 
| rule-name | Valeur alphanumérique. | Nom unique pour identifier la règle.<br />Paramètre obligatoire. | 
| rule-action | add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type | Transformation à appliquer à l'objet. Toutes les actions de règle de transformation sont sensibles à la casse.<br />Opérations sur les préfixes :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Opérations sur les suffixes :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Conversion de cas :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Modification directe :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Champ d'application : les opérations de préfixe, de suffixe, de renommage et de conversion majuscules/minuscules peuvent être appliquées aux schémas, aux tables et aux colonnes.<br />L'`change-data-type`opération s'applique uniquement aux colonnes, aux valeurs renvoyées par les fonctions, aux paramètres de routine et aux variables locales.<br />Paramètre obligatoire. | 
| rule-target | database, schema, table, view, column, function result, routine parameter, local variable | Type d'objet auquel la règle sera appliquée.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Paramètre obligatoire. | 
| object-locator | Un objet JSON. | Objet qui identifie les objets de base de données source auxquels s'applique la règle. Vous pouvez utiliser le signe de pourcentage (`%`) comme caractère générique pour tout ou partie de la valeur de chaque champ d'`object-locator`objet.<br />L'objet contient les champs de chaîne suivants :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Dans les règles de transformation, tous les noms d'objets, tels que les noms de tables ou de colonnes, distinguent les majuscules et minuscules.<br />Les sections suivantes décrivent chaque champ d'objet.<br />Paramètre obligatoire. | 
| object-locator \| database-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de la base de données source.<br />Applicable aux fournisseurs de bases de données dont l'architecture provient de la base de données en tant que conteneur d'objets de premier niveau. Par exemple : Microsoft SQL Server, SAP ASE.<br />Champ d'objet JSON facultatif. | 
| object-locator \| schema-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom du schéma de base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| table-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de la table de base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| column-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de la colonne de la table de base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| parent | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de l'objet de base de données source qui est le parent de l'objet spécifié, par exemple pour le `function-name` ou`procedure-name`.<br />Dans les bases de données de certains fournisseurs, l'objet auquel la règle est appliquée peut être subordonné et nécessiter la spécification de son parent.<br />Par exemple, les fonctions packagées dans Oracle, où le parent est le nom du package.<br />Champ d'objet JSON facultatif. | 
| object-locator \| function-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de la fonction de base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| procedure-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de la procédure de base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| parameter-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom de la fonction ou du paramètre de procédure de la base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| local-variable-name | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | Nom d'une variable locale au sein de la fonction ou de la procédure de base de données source.<br />Champ d'objet JSON facultatif. | 
| object-locator \| type | Valeur alphanumérique. | Nom du type de données source à associer. Utilisez ce champ pour appliquer la règle uniquement aux objets dotés d'un type de données spécifique.<br />Champ d'objet JSON facultatif. | 
| object-locator \| precision | Une valeur numérique (entier). | Précision du type de données source à associer.<br />Champ d'objet JSON facultatif. | 
| object-locator \| scale | Une valeur numérique (entier). | Échelle du type de données source à comparer.<br />Champ d'objet JSON facultatif. | 
| object-locator \| length | Une valeur numérique (entier). | Longueur du type de données source à faire correspondre.<br />Champ d'objet JSON facultatif. | 
| value | Valeur alphanumérique conforme aux règles de dénomination de la base de données cible. | La valeur de texte utilisée par l'action de transformation. Pour `add-prefix` et`add-suffix`, indique le texte à ajouter. Pour `remove-prefix` et`remove-suffix`, indique le texte à supprimer. Pour `replace-prefix` et`replace-suffix`, indique le texte de remplacement. Pour`rename`, spécifie le nouveau nom.<br />Obligatoire pour toutes les actions sauf `convert-uppercase``convert-lowercase`, et`change-data-type`. | 
| old-value | Valeur alphanumérique conforme aux règles de dénomination de la base de données source. | La valeur existante à rechercher et à remplacer dans le nom de l'objet. Nécessaire pour des actions telles que `replace-prefix` et`replace-suffix`.<br />Paramètre facultatif. | 
| data-type | Un objet JSON. | Un objet décrivant les propriétés du type de données de remplacement quand `rule-action` c'est le cas`change-data-type`.<br />L'objet comporte les champs suivants :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/sc-transformation-rules.html)<br />Les sections suivantes décrivent chaque champ d'objet.<br />Paramètre facultatif. | 
| data-type \| type | Valeur alphanumérique. | Nom du type de données de remplacement pour la colonne de base de données cible si `rule-action` c'est le cas`change-data-type`. Il doit s'agir d'un type de données de base de données cible valide.<br />Champ d'objet JSON obligatoire. | 
| data-type \| precision | Une valeur numérique (entier). | La précision du type de données de remplacement pour la base de données cible si `rule-action` c'est le cas`change-data-type`.<br />Champ d'objet JSON facultatif. | 
| data-type \| scale | Une valeur numérique (entier). | L'échelle du type de données de remplacement pour la base de données cible si `rule-action` c'est le cas`change-data-type`.<br />Champ d'objet JSON facultatif. | 
| data-type \| length | Une valeur numérique (entier). | Longueur du type de données de remplacement pour la base de données cible si `rule-action` c'est le cas`change-data-type`.<br />Champ d'objet JSON facultatif. | 

## Exemples de règles de transformation
<a name="sc-transformation-rules-examples"></a>

Les exemples suivants montrent la valeur JSON du `--transformation-rules` paramètre pour différents types de règles :

### Ajouter un préfixe
<a name="sc-transformation-rules-examples-add-prefix"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Ajoutez un préfixe `DW_` au schéma. `SALES`
+ Ajoutez un préfixe `FACT_` à la table `ORDERS` dans le schéma. `SALES`
+ Ajoutez un préfixe `OLD_` à la colonne de la table `UNIT_PRICE` `PRODUCTS` dans le schéma`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_"
    }
  ]
}
```

### Supprimer un préfixe
<a name="sc-transformation-rules-examples-remove-prefix"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Supprimer le préfixe `SRC_` du schéma. `SRC_FINANCE`
+ Supprimer le préfixe `TMP_` de la table `TMP_INVOICES` dans le schéma. `SRC_FINANCE`
+ Supprimer le préfixe `PAID_` de la colonne de la table `PAID_AMOUNT` `TMP_PAYMENTS` dans le schéma`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_"
    }
  ]
}
```

### Remplacer un préfixe
<a name="sc-transformation-rules-examples-replace-prefix"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Remplacez le préfixe `OLD_` par `NEW_` dans le schéma. `OLD_INVENTORY`
+ Remplacez le préfixe `STG_` par `INT_` dans le tableau `STG_WAREHOUSES` dans le schéma`OLD_INVENTORY`.
+ Remplacez le préfixe `SRC_` par `TGT_` `SRC_WAREHOUSE_CODE` dans la colonne du tableau `STG_WAREHOUSES` du schéma`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_"
    }
  ]
}
```

### Ajouter un suffixe
<a name="sc-transformation-rules-examples-add-suffix"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Ajoutez un suffixe `_HIST` au schéma. `HR_ARCHIVE`
+ Ajoutez un suffixe `_HIST` à la table `JOB_CHANGES` dans le schéma. `HR_ARCHIVE`
+ Ajoutez un suffixe `_TS` à la colonne de `CREATED_AT` la table `EMPLOYEE_SALARIES` dans le schéma`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"
    }
  ]
}
```

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

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Supprimer le suffixe `_FILES` du schéma. `LEGAL_FILES`
+ Supprimer le suffixe `_V1` de la table `CLAUSES_V1` dans le schéma. `LEGAL_FILES`
+ Supprimer le suffixe `_CODE` de la colonne de `COUNTRY_CODE` la table `CONTRACTS_V1` dans le schéma`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"
    }
  ]
}
```

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

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Remplacez le suffixe `_DEV` par `_PROD` dans le schéma. `REPORTING_DEV`
+ Remplacez le suffixe `_RPT` par `_REPORT` dans le tableau `MONTHLY_RPT` dans le schéma`REPORTING_DEV`.
+ Remplacez le suffixe `_ID` par `_KEY` dans la colonne de `CUSTOMER_ID` la table `MONTHLY_RPT` dans le schéma`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"
    }
  ]
}
```

### Convertir en majuscules
<a name="sc-transformation-rules-examples-uppercase"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Convertissez tous les caractères du nom du schéma en `CRM_LEGACY` majuscules.
+ Convertissez tous les caractères du nom de la table `CUSTOMER_ACCOUNTS` dans le schéma `CRM_LEGACY` en majuscules.
+ Convertissez tous les caractères du nom de colonne de la table `FIRST_NAME` `CUSTOMER_ACCOUNTS` dans le schéma `CRM_LEGACY` en majuscules.

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

### Convertir en minuscules
<a name="sc-transformation-rules-examples-lowercase"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Convertissez tous les caractères du nom du schéma `LOGISTICS` en minuscules.
+ Convertissez tous les caractères du nom de la table `SHIPMENT_ORDERS` dans le schéma `LOGISTICS` en minuscules.
+ Convertissez tous les caractères du nom de colonne de la table `DESTINATION_CITY` `SHIPMENT_ORDERS` dans le schéma `LOGISTICS` en minuscules.

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

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

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Renommez le schéma `TEST_SCHEMA` en. `TEST_NEW_SCHEMA`
+ Renommez la table `REGIONS` du schéma `HR` en. `ORG_REGIONS`
+ Renommez la colonne `CITY` de la table `LOCATIONS` dans le schéma `HR` en. `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"
    }
  ]
}
```

### Modifier le type de données d'une colonne
<a name="sc-transformation-rules-examples-change-data-type-columns"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Modifiez le type de données de la colonne de la table `SALARY` `EMPLOYEES` dans le schéma `PAYROLL` de `NUMBER` à `DECIMAL` avec une précision de 18 et une échelle de 4.
+ Changez le type de données de la colonne de la table `NOTES` `EMPLOYEES` dans le schéma `PAYROLL` de `VARCHAR2` `VARCHAR` à une longueur de 350.
+ Changez le type de données de la colonne de `EMPLOYEES` la table `HIRE_DATE` dans le schéma `PAYROLL` de `DATE` à `TIMESTAMP WITH TIME ZONE` avec précision 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
      }
    }
  ]
}
```

### Modifier le paramètre et le type de données de variable
<a name="sc-transformation-rules-examples-change-data-type-params"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Modifiez le type de données du paramètre `P_AMOUNT` dans la procédure stockée `PROCESS_PAYMENT` dans le schéma `FINANCE` en`NUMERIC`.
+ Modifiez le type de données de la variable locale `V_TAX_RATE` `PROCESS_PAYMENT` dans la procédure stockée du schéma `FINANCE` `NUMERIC` avec une précision de 10 et une échelle de 6.
+ Modifiez le type de données de la variable locale `V_DESCRIPTION` dans la fonction autonome du schéma `CALC_DISCOUNT` `FINANCE` à `CHARACTER` une longueur 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
      }
    }
  ]
}
```

### Modifier le type de données de retour de la fonction
<a name="sc-transformation-rules-examples-change-data-type-return"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Modifiez le type de données de retour de la fonction autonome `GET_PRODUCT_PRICE` dans le schéma `FNG_COMPANY` en`BIGINT`.
+ Modifiez le type de données de retour de la fonction autonome `CALC_DISCOUNTED_PRICE` dans le schéma `FNG_COMPANY` en`DECIMAL`.
+ Modifiez le type de données de retour de la fonction empaquetée `CALCULATE_TAX` dans `TAX_UTILS` le package dans le schéma `FNG_COMPANY` en`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"
      }
    }
  ]
}
```

### Motifs Wildcard
<a name="sc-transformation-rules-examples-wildcard"></a>

L'exemple suivant exécute ces actions lors de la conversion de la base de données source vers la base de données cible :
+ Ajoutez un préfixe `MIGR_` à tous les schémas dont le nom commence par. `STG_`
+ Ajoutez un préfixe `MIGR_` à toutes les tables de tous les schémas dont le nom commence par. `STG_`
+ Ajoutez un suffixe `_NEW` à toutes les colonnes dont le nom commence par `SRC_` dans toutes les tables de tous les schémas dont le nom commence par. `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"
    }
  ]
}
```