View a markdown version of this page

DMS 結構描述轉換中的轉換規則 - AWS 資料庫遷移服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DMS 結構描述轉換中的轉換規則

轉換規則可讓您自訂 DMS 結構描述轉換如何轉換資料庫物件,覆寫預設命名和資料類型映射。您可以將這些規則套用至資料庫、結構描述、資料表、檢視、資料欄、函數傳回值、例行參數和本機變數。

例如,假設您的來源結構描述中有一組名為 test_TABLE_NAME 的資料表。您可以設定在目標結構描述中將 test_ 字首變更為 demo_ 字首的規則。

您可以建立轉換規則來執行以下任務:

  • 新增、移除或取代字首

  • 新增、移除或取代字尾

  • 變更資料欄的資料類型、函數傳回值、常式參數或本機變數

  • 將物件名稱轉換為小寫或大寫

  • 重新命名物件

建立轉換規則

DMS 結構描述轉換會將轉換規則儲存為遷移專案的一部分。若要定義轉換規則,請在建立或修改遷移專案時,以包含具有rules陣列之物件的 JSON 字串傳遞轉換規則。陣列中的每個元素代表個別的規則物件。遷移專案最多支援 512 個轉換規則 (最多 128 KB)。

具有轉換規則的陣列結構如下:

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

您可以在專案中新增多個轉換規則。在轉換期間,DMS 結構描述轉換會依照您新增的順序來套用轉換規則。

如果多個規則以相同的物件為目標,則行為取決於動作類型。具有不同動作類型的規則都會生效。例如, add-prefix規則和 add-suffix規則都適用。具有相同動作類型的規則會互相覆寫,而且只有最後一個動作類型生效。

若要建立轉換規則,請使用下列其中一種方法。

AWS Management Console
使用主控台建立轉換規則
  1. 建立遷移專案頁面上,選擇新增轉換規則。如需詳細資訊,請參閱 建立遷移專案

  2. 針對規則目標,選擇套用此規則的資料庫物件類型。主控台精靈支援 schematablecolumn目標。若要使用其他目標,例如 databaseview,請使用主控台或 CLI 中的 JSON AWS 編輯器。

  3. 對於來源架構,請選擇輸入結構描述。然後,指定套用此規則的來源結構描述、資料表和資料欄。您可以使用確切的名稱來選取一個物件,或使用具有百分比符號 (%) 的模式做為萬用字元,以符合任意數量的字元。

  4. 針對動作,選擇要執行的任務。

  5. 根據規則動作,輸入其他值:

    • add-prefixadd-suffix – 輸入要新增的文字。

    • remove-prefixremove-suffix – 輸入要移除的文字。

    • replace-prefixreplace-suffix – 輸入現有的文字和替代文字。

    • rename – 輸入物件的新名稱。

    • convert-uppercaseconvert-lowercase – 不需要其他值。

    • change-data-type – 輸入目標資料類型名稱,以及選擇性的精確度、比例或長度。

  6. 選擇新增轉換規則以新增其他轉換規則。

    完成新增規則後,請選擇建立遷移專案

AWS CLI

若要使用 AWS CLI 新增轉換規則,請使用 --transformation-rules 參數搭配下列其中一個命令:

下列範例會將轉換規則新增至現有的遷移專案:

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

若要在特定 AWS 區域中執行此命令,請新增 --region 參數,例如 --region us-west-2

若要編輯、複製或移除現有的轉換規則,請參閱 編輯轉換規則

擷取轉換規則

您可以使用 AWS 管理主控台或 AWS CLI,從現有的 DMS 結構描述轉換遷移專案擷取轉換規則。

AWS Management Console

若要使用 AWS 管理主控台檢視轉換規則,請選擇在現有遷移專案上修改,然後檢閱轉換規則區段中的現有規則清單。

AWS CLI

若要從現有的 DMS 結構描述轉換遷移專案擷取轉換規則,請使用 describe-migration-projects 命令。回應使用 JSON 格式,並包含與專案相關聯的轉換規則。

下列 AWS CLI 範例會從遷移專案擷取轉換規則:

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

編輯轉換規則

若要編輯、新增或移除遷移專案中的轉換規則,請使用下列其中一種方法。

AWS Management Console
若要編輯轉換規則
  1. 選擇遷移專案,然後選擇您的遷移專案。

  2. 選擇修改以編輯遷移專案設定。

  3. 對於轉換規則,請選擇下列其中一個動作:

    • 選擇新增轉換規則以新增轉換規則。

    • 選擇複製以複製現有的轉換規則,並在清單結尾新增它。

    • 選擇移除,移除現有的轉換規則。

    • 選擇現有的轉換規則以進行編輯。

  4. 完成規則編輯後,選擇儲存變更

AWS CLI

若要使用 AWS CLI 更新轉換規則,請使用 modify-migration-project 命令搭配 --transformation-rules 參數。將完整的規則更新集做為 JSON 字串傳遞。

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

轉換規則格式

轉換規則使用 JSON 物件欄位來定義如何將來源物件轉換為其目標對等物件。每個規則類型都會使用一組特定的欄位。僅包含適用於您任務的欄位。

下列 JSON 物件描述 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 ] } ] }

下表說明每個參數。

參數 可能的值 說明
rule-type transformation

將規則套用至物件定位器所指定之每個物件的值。

對於所有轉換規則,將此設定為 transformation

必要參數。

rule-id 數值 (整數) 值。

識別規則的唯一數值。

必要參數。

rule-name 英數值。

識別規則的唯一名稱。

必要參數。

rule-action add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type

您希望套用到物件的轉換。所有轉換規則動作都區分大小寫。

字首操作:

  • add-prefix – 將指定文字新增至名稱的開頭。

  • remove-prefix – 從名稱開頭移除指定的文字。

  • replace-prefix – 以新的字首取代現有的字首。

尾碼操作:

  • add-suffix – 將指定的文字新增至名稱的結尾。

  • remove-suffix – 從名稱結尾移除指定的文字。

  • replace-suffix – 將現有的尾碼取代為新的尾碼。

案例轉換:

  • convert-uppercase – 將名稱中的所有字元轉換為大寫。

  • convert-lowercase – 將名稱中的所有字元轉換為小寫。

直接修改:

  • rename – 將名稱變更為全新的指定值。

  • change-data-type – 將資料欄或本機變數的資料類型修改為不同的資料類型。

範圍:字首、尾碼、重新命名和案例轉換操作可以套用至結構描述、資料表和資料欄。

change-data-type 此操作僅適用於資料欄、函數傳回值、常式參數和本機變數。

必要參數。

rule-target database, schema, table, view, column, function result, routine parameter, local variable

要套用規則的物件類型。

  • database – 資料庫。

  • schema – 資料庫結構描述。

  • table – 資料庫資料表。

  • view – 資料庫檢視。

  • column – 資料庫資料表或檢視欄。

  • function result – 函數傳回值。

  • routine parameter – 預存程序或函數參數。

  • local variable – 預存程序或函數中的本機變數。

必要參數。

object-locator JSON 物件。

識別規則套用之來源資料庫物件的物件。您可以在每個object-locator物件欄位中使用百分比符號 (%) 做為全部或部分值的萬用字元。

物件包含下列字串欄位:

  • database-name

  • schema-name

  • table-name

  • column-name

  • parent

  • function-name

  • procedure-name

  • parameter-name

  • local-variable-name

  • type

  • precision

  • scale

  • length

轉換規則中的所有物件名稱,例如資料表或資料欄名稱,都會區分大小寫。

下列各節說明每個物件欄位。

必要參數。

object-locator | database-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫的名稱。

適用於資料庫架構源自資料庫的資料庫廠商,做為物件的最上層容器。例如:Microsoft SQL Server、SAP ASE。

選用 JSON 物件欄位。

object-locator | schema-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫結構描述的名稱。

選用 JSON 物件欄位。

object-locator | table-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫資料表的名稱。

選用 JSON 物件欄位。

object-locator | column-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫資料表資料欄的名稱。

選用 JSON 物件欄位。

object-locator | parent 遵循來源資料庫命名規則的英數字元值。

來源資料庫物件的名稱,其為指定物件的父項,例如 function-nameprocedure-name

在一些廠商的資料庫中,套用規則的物件可能是次級的,並且需要指定其父系。

例如,Oracle 中的封裝函數,其中父系是套件名稱。

選用 JSON 物件欄位。

object-locator | function-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫函數的名稱。

選用 JSON 物件欄位。

object-locator | procedure-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫程序的名稱。

選用 JSON 物件欄位。

object-locator | parameter-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫函數或程序參數的名稱。

選用 JSON 物件欄位。

object-locator | local-variable-name 遵循來源資料庫命名規則的英數字元值。

來源資料庫函數或程序內本機變數的名稱。

選用 JSON 物件欄位。

object-locator | type 英數值。

要比對的來源資料類型名稱。使用此欄位僅將規則套用至具有特定資料類型的物件。

選用 JSON 物件欄位。

object-locator | precision 數值 (整數) 值。

要比對的來源資料類型精確度。

選用 JSON 物件欄位。

object-locator | scale 數值 (整數) 值。

要比對的來源資料類型比例。

選用 JSON 物件欄位。

object-locator | length 數值 (整數) 值。

要比對的來源資料類型長度。

選用 JSON 物件欄位。

value 遵循目標資料庫命名規則的英數字元值。

轉換動作使用的文字值。對於 add-prefixadd-suffix,指定要新增的文字。對於 remove-prefixremove-suffix,指定要移除的文字。對於 replace-prefixreplace-suffix,指定取代文字。對於 rename,指定新名稱。

除了 convert-uppercaseconvert-lowercase和 之外的所有動作都需要change-data-type

old-value 遵循來源資料庫命名規則的英數字元值。

在物件名稱中尋找和取代的現有值。如 replace-prefix和 等動作需要replace-suffix

選用參數。

data-type JSON 物件。

rule-action為 時,描述替換資料類型屬性的物件change-data-type

物件包含下列欄位:

  • type :字串

  • precision :數字

  • scale :number

  • length :數字

下列各節說明每個物件欄位。

選用參數。

data-type | type 英數值。

如果 rule-action為 ,則為目標資料庫資料欄的替換資料類型名稱change-data-type。必須是有效的目標資料庫資料類型。

必要的 JSON 物件欄位。

data-type | precision 數值 (整數) 值。

如果 rule-action是 ,則目標資料庫替換資料類型的精確度change-data-type

選用 JSON 物件欄位。

data-type | scale 數值 (整數) 值。

如果 rule-action是 ,則目標資料庫替換資料類型的規模change-data-type

選用 JSON 物件欄位。

data-type | length 數值 (整數) 值。

如果 rule-action是 ,則目標資料庫的替換資料類型長度change-data-type

選用 JSON 物件欄位。

轉換規則範例

下列範例顯示不同規則類型的 --transformation-rules 參數 JSON 值:

下列範例會在從來源轉換為目標資料庫時執行這些動作:

  • 將字首DW_新增至結構描述 SALES

  • 將字首FACT_新增至結構描述 ORDERS中的資料表SALES

  • OLD_ 將字首新增至結構描述 UNIT_PRICE中資料表PRODUCTS中的資料欄SALES

{ "rules": [ { "rule-id": 5, "rule-type": "transformation", "rule-name": "add-prefix-schema-sales", "rule-action": "add-prefix", "rule-target": "schema", "object-locator": { "schema-name": "SALES" }, "value": "DW_" }, { "rule-id": 12, "rule-type": "transformation", "rule-name": "add-prefix-table-orders", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "SALES", "table-name": "ORDERS" }, "value": "FACT_" }, { "rule-id": 27, "rule-type": "transformation", "rule-name": "add-prefix-column-unit-price", "rule-action": "add-prefix", "rule-target": "column", "object-locator": { "schema-name": "SALES", "table-name": "PRODUCTS", "column-name": "UNIT_PRICE" }, "value": "OLD_" } ] }

下列範例會在從來源轉換為目標資料庫時執行這些動作:

  • SRC_ 從結構描述 移除字首SRC_FINANCE

  • TMP_ 從結構描述 TMP_INVOICES中的資料表移除字首SRC_FINANCE

  • PAID_ 從結構描述 PAID_AMOUNT 中的資料表 TMP_PAYMENTS 中的資料欄移除字首SRC_FINANCE

{ "rules": [ { "rule-id": 3, "rule-type": "transformation", "rule-name": "remove-prefix-schema-src-finance", "rule-action": "remove-prefix", "rule-target": "schema", "object-locator": { "schema-name": "SRC_FINANCE" }, "value": "SRC_" }, { "rule-id": 18, "rule-type": "transformation", "rule-name": "remove-prefix-table-tmp-invoices", "rule-action": "remove-prefix", "rule-target": "table", "object-locator": { "schema-name": "SRC_FINANCE", "table-name": "TMP_INVOICES" }, "value": "TMP_" }, { "rule-id": 41, "rule-type": "transformation", "rule-name": "remove-prefix-column-paid-amount", "rule-action": "remove-prefix", "rule-target": "column", "object-locator": { "schema-name": "SRC_FINANCE", "table-name": "TMP_PAYMENTS", "column-name": "PAID_AMOUNT" }, "value": "PAID_" } ] }

下列範例會在從來源轉換為目標資料庫時執行這些動作:

  • 在結構描述 NEW_OLD_將字首取代為 OLD_INVENTORY

  • 在結構描述 STG_WAREHOUSES的資料表INT_STG_將字首取代為 OLD_INVENTORY

  • 在結構描述 的資料表 TGT_ SRC_WAREHOUSE_CODE的 欄中SRC_,將字首取代STG_WAREHOUSESOLD_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_" } ] }

下列範例會在從來源轉換為目標資料庫時執行這些動作:

  • 將尾碼_HIST新增至結構描述 HR_ARCHIVE

  • 將尾碼_HIST新增至結構描述 JOB_CHANGES中的資料表HR_ARCHIVE

  • _TS 將尾碼新增至結構描述 CREATED_AT中資料表EMPLOYEE_SALARIES中的資料欄HR_ARCHIVE

{ "rules": [ { "rule-id": 9, "rule-type": "transformation", "rule-name": "add-suffix-schema-hr-archive", "rule-action": "add-suffix", "rule-target": "schema", "object-locator": { "schema-name": "HR_ARCHIVE" }, "value": "_HIST" }, { "rule-id": 16, "rule-type": "transformation", "rule-name": "add-suffix-table-job-changes", "rule-action": "add-suffix", "rule-target": "table", "object-locator": { "schema-name": "HR_ARCHIVE", "table-name": "JOB_CHANGES" }, "value": "_HIST" }, { "rule-id": 44, "rule-type": "transformation", "rule-name": "add-suffix-column-created-at", "rule-action": "add-suffix", "rule-target": "column", "object-locator": { "schema-name": "HR_ARCHIVE", "table-name": "EMPLOYEE_SALARIES", "column-name": "CREATED_AT" }, "value": "_TS" } ] }

下列範例會在從來源轉換為目標資料庫時執行這些動作:

  • _FILES 從結構描述 移除尾碼LEGAL_FILES

  • _V1 從結構描述 CLAUSES_V1中的資料表移除尾碼LEGAL_FILES

  • _CODE 從結構描述 COUNTRY_CODE 中的資料表 CONTRACTS_V1 中的資料欄移除尾碼LEGAL_FILES

{ "rules": [ { "rule-id": 6, "rule-type": "transformation", "rule-name": "remove-suffix-schema-legal-files", "rule-action": "remove-suffix", "rule-target": "schema", "object-locator": { "schema-name": "LEGAL_FILES" }, "value": "_FILES" }, { "rule-id": 14, "rule-type": "transformation", "rule-name": "remove-suffix-table-clauses-v1", "rule-action": "remove-suffix", "rule-target": "table", "object-locator": { "schema-name": "LEGAL_FILES", "table-name": "CLAUSES_V1" }, "value": "_V1" }, { "rule-id": 31, "rule-type": "transformation", "rule-name": "remove-suffix-column-country-code", "rule-action": "remove-suffix", "rule-target": "column", "object-locator": { "schema-name": "LEGAL_FILES", "table-name": "CONTRACTS_V1", "column-name": "COUNTRY_CODE" }, "value": "_CODE" } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • 在結構描述 _PROD_DEV將尾碼取代為 REPORTING_DEV

  • 在結構描述 MONTHLY_RPT的資料表_REPORT_RPT將尾碼取代為 REPORTING_DEV

  • 將尾碼取代_ID為結構描述 _KEY 中資料表 CUSTOMER_ID 中資料欄中MONTHLY_RPTREPORTING_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" } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • 將結構描述名稱中的所有字元CRM_LEGACY轉換為大寫。

  • 將結構描述中資料表名稱CUSTOMER_ACCOUNTS中的所有字元CRM_LEGACY轉換為大寫。

  • FIRST_NAME資料表中資料欄名稱中的所有字元CUSTOMER_ACCOUNTSCRM_LEGACY轉換為大寫。

{ "rules": [ { "rule-id": 4, "rule-type": "transformation", "rule-name": "convert-uppercase-schema-crm-legacy", "rule-action": "convert-uppercase", "rule-target": "schema", "object-locator": { "schema-name": "CRM_LEGACY" } }, { "rule-id": 19, "rule-type": "transformation", "rule-name": "convert-uppercase-table-customer-accounts", "rule-action": "convert-uppercase", "rule-target": "table", "object-locator": { "schema-name": "CRM_LEGACY", "table-name": "CUSTOMER_ACCOUNTS" } }, { "rule-id": 36, "rule-type": "transformation", "rule-name": "convert-uppercase-column-first-name", "rule-action": "convert-uppercase", "rule-target": "column", "object-locator": { "schema-name": "CRM_LEGACY", "table-name": "CUSTOMER_ACCOUNTS", "column-name": "FIRST_NAME" } } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • 將結構描述名稱中的所有字元LOGISTICS轉換為小寫。

  • 將結構描述中資料表名稱SHIPMENT_ORDERS中的所有字元LOGISTICS轉換為小寫。

  • 將資料表中資料欄名稱DESTINATION_CITY中的所有字元SHIPMENT_ORDERSLOGISTICS轉換為小寫。

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

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • 將結構描述重新命名TEST_SCHEMATEST_NEW_SCHEMA

  • 將結構描述REGIONS中的資料表重新命名HRORG_REGIONS

  • 將結構描述CITY中資料表LOCATIONS中的資料欄重新命名HRORG_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" } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • 將結構描述SALARY中資料表EMPLOYEES中的資料欄資料類型PAYROLL從 變更為 NUMBERDECIMAL,精確度為 18,比例為 4。

  • 將結構描述NOTES中資料表EMPLOYEES中的資料欄資料類型PAYROLLVARCHAR2變更為 VARCHAR,長度為 350。

  • 將結構描述HIRE_DATE中資料表EMPLOYEES中的資料欄資料類型PAYROLL從 變更為 DATETIMESTAMP WITH TIME ZONE,精確度為 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 } } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • PROCESS_PAYMENT 結構描述P_AMOUNT中預存程序中參數的資料類型FINANCE變更為 NUMERIC

  • PROCESS_PAYMENT 結構描述V_TAX_RATE中預存程序中本機變數的資料類型FINANCE變更為 NUMERIC ,精確度為 10,比例為 6。

  • 將結構描述V_DESCRIPTION中獨立函數CALC_DISCOUNT中本機變數的資料類型變更為長度FINANCE為 150 CHARACTER的 。

{ "rules": [ { "rule-id": 7, "rule-type": "transformation", "rule-name": "change-datatype-param-p-amount", "rule-action": "change-data-type", "rule-target": "routine parameter", "object-locator": { "schema-name": "FINANCE", "procedure-name": "PROCESS_PAYMENT", "parameter-name": "P_AMOUNT" }, "data-type": { "type": "NUMERIC" } }, { "rule-id": 21, "rule-type": "transformation", "rule-name": "change-datatype-localvar-v-tax-rate", "rule-action": "change-data-type", "rule-target": "local variable", "object-locator": { "schema-name": "FINANCE", "procedure-name": "PROCESS_PAYMENT", "local-variable-name": "V_TAX_RATE" }, "data-type": { "type": "NUMERIC", "precision": 10, "scale": 6 } }, { "rule-id": 43, "rule-type": "transformation", "rule-name": "change-datatype-localvar-v-description", "rule-action": "change-data-type", "rule-target": "local variable", "object-locator": { "schema-name": "FINANCE", "function-name": "CALC_DISCOUNT", "local-variable-name": "V_DESCRIPTION" }, "data-type": { "type": "CHARACTER", "length": 150 } } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • 將結構描述GET_PRODUCT_PRICE中獨立函數的傳回資料類型FNG_COMPANY變更為 BIGINT

  • 將結構描述CALC_DISCOUNTED_PRICE中獨立函數的傳回資料類型FNG_COMPANY變更為 DECIMAL

  • 將結構描述TAX_UTILS中套件CALCULATE_TAX內封裝函數的傳回資料類型FNG_COMPANY變更為 REAL

{ "rules": [ { "rule-id": 13, "rule-type": "transformation", "rule-name": "change-result-type-get-product-price", "rule-action": "change-data-type", "rule-target": "function result", "object-locator": { "schema-name": "FNG_COMPANY", "function-name": "GET_PRODUCT_PRICE" }, "data-type": { "type": "BIGINT" } }, { "rule-id": 28, "rule-type": "transformation", "rule-name": "change-result-calc-discounted-price", "rule-action": "change-data-type", "rule-target": "function result", "object-locator": { "schema-name": "FNG_COMPANY", "function-name": "CALC_DISCOUNTED_PRICE" }, "data-type": { "type": "DECIMAL" } }, { "rule-id": 61, "rule-type": "transformation", "rule-name": "change-result-type-calculate-tax", "rule-action": "change-data-type", "rule-target": "function result", "object-locator": { "schema-name": "FNG_COMPANY", "parent": "TAX_UTILS", "function-name": "CALCULATE_TAX" }, "data-type": { "type": "REAL" } } ] }

下列範例會在從來源轉換到目標資料庫時執行這些動作:

  • MIGR_ 將字首新增至名稱開頭為 的所有結構描述STG_

  • MIGR_ 將字首新增至名稱開頭為 的所有結構描述中的所有資料表STG_

  • 在名稱開頭為 的所有結構描述的所有資料表SRC__NEW,將尾碼新增至名稱開頭為 的所有資料欄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" } ] }