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
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
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.
Pour modifier, dupliquer ou supprimer des règles de transformation existantes, consultezModification de règles de transformation.
Récupération des règles de transformation
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.
Modification de règles de transformation
Pour modifier, ajouter ou supprimer des règles de transformation dans votre projet de migration, appliquez l'une des méthodes suivantes.
Format des règles de transformation
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. Pour toutes les règles de transformation, définissez cette valeur sur Paramètre obligatoire. |
rule-id |
Une valeur numérique (entier). | Valeur numérique unique pour identifier la règle. Paramètre obligatoire. |
rule-name |
Valeur alphanumérique. | Nom unique pour identifier la règle. 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. Opérations sur les préfixes :
Opérations sur les suffixes :
Conversion de cas :
Modification directe :
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. L' 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.
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 ( L'objet contient les champs de chaîne suivants :
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. Les sections suivantes décrivent chaque champ d'objet. 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. 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. 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. 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. 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. 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 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. Par exemple, les fonctions packagées dans Oracle, où le parent est le nom du package. 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. 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. 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. 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. 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. Champ d'objet JSON facultatif. |
object-locator | precision |
Une valeur numérique (entier). | Précision du type de données source à associer. Champ d'objet JSON facultatif. |
object-locator | scale |
Une valeur numérique (entier). | Échelle du type de données source à comparer. Champ d'objet JSON facultatif. |
object-locator | length |
Une valeur numérique (entier). | Longueur du type de données source à faire correspondre. 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 Obligatoire pour toutes les actions sauf |
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 Paramètre facultatif. |
data-type |
Un objet JSON. | Un objet décrivant les propriétés du type de données de remplacement quand L'objet comporte les champs suivants :
Les sections suivantes décrivent chaque champ d'objet. 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 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 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 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 Champ d'objet JSON facultatif. |
Exemples de règles de transformation
Les exemples suivants montrent la valeur JSON du --transformation-rules paramètre pour différents types de règles :
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 tableORDERSdans le schéma.SALES -
Ajoutez un préfixe
OLD_à la colonne de la tableUNIT_PRICEPRODUCTSdans le schémaSALES.
{ "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_" } ] }
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 tableTMP_INVOICESdans le schéma.SRC_FINANCE -
Supprimer le préfixe
PAID_de la colonne de la tablePAID_AMOUNTTMP_PAYMENTSdans le schémaSRC_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_" } ] }
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_parNEW_dans le schéma.OLD_INVENTORY -
Remplacez le préfixe
STG_parINT_dans le tableauSTG_WAREHOUSESdans le schémaOLD_INVENTORY. -
Remplacez le préfixe
SRC_parTGT_SRC_WAREHOUSE_CODEdans la colonne du tableauSTG_WAREHOUSESdu schémaOLD_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_" } ] }
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
_HISTau schéma.HR_ARCHIVE -
Ajoutez un suffixe
_HISTà la tableJOB_CHANGESdans le schéma.HR_ARCHIVE -
Ajoutez un suffixe
_TSà la colonne deCREATED_ATla tableEMPLOYEE_SALARIESdans le schémaHR_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" } ] }
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
_FILESdu schéma.LEGAL_FILES -
Supprimer le suffixe
_V1de la tableCLAUSES_V1dans le schéma.LEGAL_FILES -
Supprimer le suffixe
_CODEde la colonne deCOUNTRY_CODEla tableCONTRACTS_V1dans le schémaLEGAL_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" } ] }
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
_DEVpar_PRODdans le schéma.REPORTING_DEV -
Remplacez le suffixe
_RPTpar_REPORTdans le tableauMONTHLY_RPTdans le schémaREPORTING_DEV. -
Remplacez le suffixe
_IDpar_KEYdans la colonne deCUSTOMER_IDla tableMONTHLY_RPTdans le schémaREPORTING_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" } ] }
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_LEGACYmajuscules. -
Convertissez tous les caractères du nom de la table
CUSTOMER_ACCOUNTSdans le schémaCRM_LEGACYen majuscules. -
Convertissez tous les caractères du nom de colonne de la table
FIRST_NAMECUSTOMER_ACCOUNTSdans le schémaCRM_LEGACYen 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" } } ] }
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
LOGISTICSen minuscules. -
Convertissez tous les caractères du nom de la table
SHIPMENT_ORDERSdans le schémaLOGISTICSen minuscules. -
Convertissez tous les caractères du nom de colonne de la table
DESTINATION_CITYSHIPMENT_ORDERSdans le schémaLOGISTICSen 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" } } ] }
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_SCHEMAen.TEST_NEW_SCHEMA -
Renommez la table
REGIONSdu schémaHRen.ORG_REGIONS -
Renommez la colonne
CITYde la tableLOCATIONSdans le schémaHRen.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" } ] }
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
SALARYEMPLOYEESdans le schémaPAYROLLdeNUMBERàDECIMALavec une précision de 18 et une échelle de 4. -
Changez le type de données de la colonne de la table
NOTESEMPLOYEESdans le schémaPAYROLLdeVARCHAR2VARCHARà une longueur de 350. -
Changez le type de données de la colonne de
EMPLOYEESla tableHIRE_DATEdans le schémaPAYROLLdeDATEàTIMESTAMP WITH TIME ZONEavec 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 } } ] }
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_AMOUNTdans la procédure stockéePROCESS_PAYMENTdans le schémaFINANCEenNUMERIC. -
Modifiez le type de données de la variable locale
V_TAX_RATEPROCESS_PAYMENTdans la procédure stockée du schémaFINANCENUMERICavec une précision de 10 et une échelle de 6. -
Modifiez le type de données de la variable locale
V_DESCRIPTIONdans la fonction autonome du schémaCALC_DISCOUNTFINANCEàCHARACTERune 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 } } ] }
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_PRICEdans le schémaFNG_COMPANYenBIGINT. -
Modifiez le type de données de retour de la fonction autonome
CALC_DISCOUNTED_PRICEdans le schémaFNG_COMPANYenDECIMAL. -
Modifiez le type de données de retour de la fonction empaquetée
CALCULATE_TAXdansTAX_UTILSle package dans le schémaFNG_COMPANYenREAL.
{ "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" } } ] }
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 parSRC_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" } ] }