

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Aturan transformasi dalam Konversi Skema DMS
<a name="sc-transformation-rules"></a>

*Aturan transformasi* memungkinkan Anda menyesuaikan cara Konversi Skema DMS mengonversi objek database Anda, mengesampingkan penamaan default dan pemetaan tipe data. Anda dapat menerapkan aturan ini ke database, skema, tabel, tampilan, kolom, nilai pengembalian fungsi, parameter rutin, dan variabel lokal.

Misalnya, Anda memiliki satu set tabel dalam skema sumber Anda bernama`test_TABLE_NAME`. Anda dapat mengatur aturan yang mengubah awalan `test_` ke awalan `demo_` dalam skema target.

Anda dapat membuat aturan transformasi yang melakukan tugas-tugas berikut:
+ Menambahkan, menghapus, atau mengganti awalan
+ Menambahkan, menghapus, atau mengganti sufiks
+ Ubah tipe data kolom, nilai pengembalian fungsi, parameter rutin, atau variabel lokal
+ Ubah nama objek menjadi huruf kecil atau huruf besar
+ Ganti nama objek

## Membuat aturan transformasi
<a name="sc-transformation-rules-create"></a>

Konversi Skema DMS menyimpan aturan transformasi sebagai bagian dari proyek migrasi Anda. Untuk menentukan aturan transformasi, teruskan sebagai string JSON yang berisi objek dengan `rules` array saat Anda membuat atau memodifikasi proyek migrasi. Setiap elemen dalam array mewakili objek aturan terpisah. Proyek migrasi mendukung hingga 512 aturan transformasi (maksimum 128 KB).

Struktur array dengan aturan transformasi adalah sebagai berikut:

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

Anda dapat menambahkan beberapa aturan transformasi dalam proyek Anda. Konversi Skema DMS menerapkan aturan transformasi selama konversi dalam urutan yang sama seperti yang Anda tambahkan.

Jika beberapa aturan menargetkan objek yang sama, perilaku tergantung pada jenis tindakan. Aturan dengan jenis tindakan yang berbeda semuanya berlaku. Misalnya, `add-prefix` aturan dan `add-suffix` aturan keduanya berlaku. Aturan dengan tipe tindakan yang sama saling menimpa, dan hanya yang terakhir yang berlaku.

Untuk membuat aturan transformasi, gunakan salah satu metode berikut.

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

**Untuk membuat aturan transformasi menggunakan konsol**

1. Pada halaman **Buat proyek migrasi**, pilih **Tambahkan aturan transformasi**. Untuk informasi selengkapnya, lihat [ Membuat proyek migrasi](migration-projects-create.md).

1. Untuk **target Rule**, pilih jenis objek database yang aturan ini berlaku. Konsol wizard mendukung`schema`,`table`, dan `column` target. Untuk menggunakan target lain seperti `database` atau`view`, gunakan editor JSON di konsol atau AWS CLI.

1. Untuk **skema Sumber**, pilih **Masukkan skema**. Kemudian, tentukan skema sumber, tabel, dan kolom tempat aturan ini berlaku. Anda dapat menggunakan nama yang tepat untuk memilih satu objek, atau menggunakan pola dengan tanda persen (%) sebagai wildcard untuk mencocokkan sejumlah karakter.

1. Untuk **Tindakan**, pilih tugas yang akan dilakukan. 

1. Bergantung pada tindakan aturan, masukkan nilai tambahan:
   + `add-prefix`atau `add-suffix` — Masukkan teks yang akan ditambahkan.
   + `remove-prefix`atau `remove-suffix` — Masukkan teks yang akan dihapus.
   + `replace-prefix`atau `replace-suffix` — Masukkan teks yang ada dan teks pengganti.
   + `rename`— Masukkan nama baru untuk objek.
   + `convert-uppercase`atau `convert-lowercase` — Tidak ada nilai tambahan yang diperlukan.
   + `change-data-type`— Masukkan nama tipe data target, dan opsional presisi, skala, atau panjangnya.

1. Pilih **Tambahkan aturan transformasi** untuk menambahkan aturan transformasi lain.

   Setelah selesai menambahkan aturan, pilih **Buat proyek migrasi**.

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

Untuk menambahkan aturan transformasi menggunakan AWS CLI, gunakan `--transformation-rules` parameter dengan salah satu perintah berikut:
+ [create-migration-project — Saat membuat proyek](https://docs.aws.amazon.com/cli/latest/reference/dms/create-migration-project.html) migrasi baru.
+ [modify-migration-project — Untuk proyek](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) migrasi yang ada.

Contoh berikut menambahkan aturan transformasi ke proyek migrasi yang ada:

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

Untuk menjalankan perintah ini di Wilayah AWS tertentu, tambahkan `--region` parameter, misalnya`--region us-west-2`.

------

Untuk mengedit, menduplikasi, atau menghapus aturan transformasi yang ada, lihat[Mengedit aturan transformasi](#sc-transformation-rules-edit).

## Mengambil aturan transformasi
<a name="sc-transformation-rules-obtain"></a>

Anda dapat mengambil aturan transformasi dari proyek migrasi Konversi Skema DMS yang ada menggunakan Konsol AWS Manajemen atau CLI. AWS 

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

Untuk melihat aturan transformasi menggunakan Konsol AWS Manajemen, pilih **Ubah** pada proyek migrasi yang ada dan tinjau daftar aturan yang ada di bagian **Aturan transformasi**.

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

[Untuk mengambil aturan transformasi dari proyek migrasi Konversi Skema DMS yang ada, gunakan perintah deskripsi-migrasi-proyek.](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-migration-projects.html) Respons menggunakan format JSON dan mencakup aturan transformasi yang terkait dengan proyek.

Contoh AWS CLI berikut mengambil aturan transformasi dari proyek migrasi:

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

------

## Mengedit aturan transformasi
<a name="sc-transformation-rules-edit"></a>

Untuk mengedit, menambah, atau menghapus aturan transformasi dalam proyek migrasi Anda, gunakan salah satu metode berikut.

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

**Untuk mengedit aturan transformasi**

1. Pilih **Proyek migrasi**, lalu pilih proyek migrasi Anda.

1. Pilih **Ubah** untuk mengedit setelan proyek migrasi Anda.

1. Untuk **aturan Transformasi**, pilih salah satu tindakan berikut:
   + Pilih **Tambahkan aturan transformasi** untuk menambahkan aturan transformasi baru.
   + Pilih **Duplikat** untuk menduplikasi aturan transformasi yang ada dan menambahkannya di akhir daftar.
   + Pilih **Hapus** untuk menghapus aturan transformasi yang ada.
   + Pilih aturan transformasi yang ada untuk mengeditnya.

1. Setelah Anda selesai mengedit aturan, pilih **Simpan perubahan**.

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

Untuk memperbarui aturan transformasi menggunakan AWS CLI, gunakan perintah [modify-migration-project](https://docs.aws.amazon.com/cli/latest/reference/dms/modify-migration-project.html) dengan parameter. `--transformation-rules` Lulus seperangkat aturan lengkap yang diperbarui sebagai string JSON.

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

------

## Format aturan transformasi
<a name="sc-transformation-rules-format"></a>

Aturan transformasi menggunakan bidang objek JSON untuk menentukan cara mengonversi objek sumber menjadi setara targetnya. Setiap jenis aturan menggunakan satu set bidang tertentu. Sertakan hanya bidang yang berlaku untuk tugas Anda.

Objek JSON berikut menjelaskan aturan transformasi Konversi Skema 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}} ]
  } ]
}
```

Tabel berikut menjelaskan setiap parameter.


| Parameter | Kemungkinan nilai | Deskripsi | 
| --- | --- | --- | 
| rule-type | transformation | Nilai yang menerapkan aturan untuk setiap objek yang ditentukan oleh pencari objek.<br />Untuk semua aturan transformasi, tetapkan ini ke`transformation`.<br />Parameter yang diperlukan. | 
| rule-id | Nilai numerik (integer). | Nilai numerik yang unik untuk mengidentifikasi aturan.<br />Parameter yang diperlukan. | 
| rule-name | Nilai alfanumerik. | Nama unik untuk mengidentifikasi aturan.<br />Parameter yang diperlukan. | 
| rule-action | add-prefix, remove-prefix, replace-prefix, add-suffix, remove-suffix, replace-suffix, convert-uppercase, convert-lowercase, rename, change-data-type | Transformasi yang ingin Anda terapkan ke objek. Semua tindakan aturan transformasi peka huruf besar-kecil.<br />Operasi awalan:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Operasi akhiran:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Konversi kasus:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Modifikasi langsung:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Lingkup: awalan, akhiran, ganti nama, dan operasi konversi kasus dapat diterapkan ke skema, tabel, dan kolom.<br />`change-data-type`Operasi hanya berlaku untuk kolom, nilai pengembalian fungsi, parameter rutin, dan variabel lokal.<br />Parameter yang diperlukan. | 
| rule-target | database, schema, table, view, column, function result, routine parameter, local variable | Jenis objek yang aturannya akan diterapkan.[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Parameter yang diperlukan. | 
| object-locator | Sebuah objek JSON. | Objek yang mengidentifikasi objek basis data sumber mana yang berlaku untuk aturan. Anda dapat menggunakan tanda persen (`%`) sebagai wildcard untuk semua atau sebagian nilai di setiap bidang `object-locator` objek.<br />Objek berisi bidang string berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Semua nama objek, seperti nama tabel atau kolom, dalam aturan transformasi peka huruf besar/kecil.<br />Bagian berikut menjelaskan setiap bidang objek.<br />Parameter yang diperlukan. | 
| object-locator \| database-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama database sumber.<br />Berlaku untuk vendor database di mana arsitektur database berasal dari database sebagai wadah objek tingkat atas. Misalnya: Microsoft SQL Server, SAP ASE.<br />Bidang objek JSON opsional. | 
| object-locator \| schema-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama skema basis data sumber.<br />Bidang objek JSON opsional. | 
| object-locator \| table-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama tabel database sumber.<br />Bidang objek JSON opsional. | 
| object-locator \| column-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama kolom tabel database sumber.<br />Bidang objek JSON opsional. | 
| object-locator \| parent | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama objek database sumber yang merupakan induk dari objek yang ditentukan, misalnya, untuk `function-name` atau`procedure-name`.<br />Dalam database beberapa vendor, objek yang aturan diterapkan mungkin bawahan dan memerlukan penentuan induknya.<br />Misalnya, fungsi yang dikemas di Oracle, di mana induknya adalah nama paket.<br />Bidang objek JSON opsional. | 
| object-locator \| function-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama fungsi database sumber.<br />Bidang objek JSON opsional. | 
| object-locator \| procedure-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama prosedur database sumber.<br />Bidang objek JSON opsional. | 
| object-locator \| parameter-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama fungsi database sumber atau parameter prosedur.<br />Bidang objek JSON opsional. | 
| object-locator \| local-variable-name | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nama variabel lokal dalam fungsi database sumber atau prosedur.<br />Bidang objek JSON opsional. | 
| object-locator \| type | Nilai alfanumerik. | Nama tipe data sumber yang cocok. Gunakan bidang ini untuk menerapkan aturan hanya untuk objek dengan tipe data tertentu.<br />Bidang objek JSON opsional. | 
| object-locator \| precision | Nilai numerik (integer). | Ketepatan tipe data sumber untuk mencocokkan.<br />Bidang objek JSON opsional. | 
| object-locator \| scale | Nilai numerik (integer). | Skala tipe data sumber yang cocok.<br />Bidang objek JSON opsional. | 
| object-locator \| length | Nilai numerik (integer). | Panjang tipe data sumber yang cocok.<br />Bidang objek JSON opsional. | 
| value | Nilai alfanumerik yang mengikuti aturan penamaan untuk database target. | Nilai teks yang digunakan oleh tindakan transformasi. Untuk `add-prefix` dan`add-suffix`, menentukan teks yang akan ditambahkan. Untuk `remove-prefix` dan`remove-suffix`, menentukan teks yang akan dihapus. Untuk `replace-prefix` dan`replace-suffix`, menentukan teks pengganti. Untuk`rename`, tentukan nama baru.<br />Diperlukan untuk semua tindakan kecuali`convert-uppercase`,`convert-lowercase`, dan`change-data-type`. | 
| old-value | Nilai alfanumerik yang mengikuti aturan penamaan untuk database sumber. | Nilai yang ada untuk menemukan dan mengganti dalam nama objek. Diperlukan untuk tindakan seperti `replace-prefix` dan`replace-suffix`.<br />Parameter opsional. | 
| data-type | Sebuah objek JSON. | Objek yang menjelaskan properti tipe data pengganti kapan`rule-action`. `change-data-type`<br />Objek berisi kolom-kolom berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/dms/latest/userguide/sc-transformation-rules.html)<br />Bagian berikut menjelaskan setiap bidang objek.<br />Parameter opsional. | 
| data-type \| type | Nilai alfanumerik. | Nama tipe data pengganti untuk kolom database target jika `rule-action` ada`change-data-type`. Harus menjadi tipe data database target yang valid.<br />Diperlukan bidang objek JSON. | 
| data-type \| precision | Nilai numerik (integer). | Ketepatan tipe data pengganti untuk database target jika `rule-action` ada`change-data-type`.<br />Bidang objek JSON opsional. | 
| data-type \| scale | Nilai numerik (integer). | Skala tipe data pengganti untuk database target jika `rule-action` ada`change-data-type`.<br />Bidang objek JSON opsional. | 
| data-type \| length | Nilai numerik (integer). | Panjang tipe data pengganti untuk database target jika `rule-action` ada`change-data-type`.<br />Bidang objek JSON opsional. | 

## Contoh aturan transformasi
<a name="sc-transformation-rules-examples"></a>

Contoh berikut menunjukkan nilai JSON untuk `--transformation-rules` parameter untuk jenis aturan yang berbeda:

### Tambahkan prefiks
<a name="sc-transformation-rules-examples-add-prefix"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Tambahkan awalan `DW_` ke skema`SALES`.
+ Tambahkan awalan `FACT_` ke tabel `ORDERS` dalam skema`SALES`.
+ Tambahkan awalan `OLD_` ke kolom `UNIT_PRICE` dalam tabel `PRODUCTS` dalam skema`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_"
    }
  ]
}
```

### Hapus awalan
<a name="sc-transformation-rules-examples-remove-prefix"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Hapus awalan `SRC_` dari skema`SRC_FINANCE`.
+ Hapus awalan `TMP_` dari tabel `TMP_INVOICES` dalam skema`SRC_FINANCE`.
+ Hapus awalan `PAID_` dari kolom `PAID_AMOUNT` dalam tabel `TMP_PAYMENTS` dalam skema`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_"
    }
  ]
}
```

### Ganti awalan
<a name="sc-transformation-rules-examples-replace-prefix"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ganti awalan `OLD_` dengan `NEW_` dalam skema`OLD_INVENTORY`.
+ Ganti awalan `STG_` dengan tabel `INT_` `STG_WAREHOUSES` dalam skema`OLD_INVENTORY`.
+ Ganti awalan `SRC_` dengan kolom `TGT_` `SRC_WAREHOUSE_CODE` dalam tabel `STG_WAREHOUSES` dalam skema`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_"
    }
  ]
}
```

### Tambahkan sufiks
<a name="sc-transformation-rules-examples-add-suffix"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Tambahkan akhiran `_HIST` ke skema`HR_ARCHIVE`.
+ Tambahkan akhiran `_HIST` ke tabel `JOB_CHANGES` dalam skema`HR_ARCHIVE`.
+ Tambahkan akhiran `_TS` ke kolom `CREATED_AT` dalam tabel `EMPLOYEE_SALARIES` dalam skema`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"
    }
  ]
}
```

### Hapus sufiks
<a name="sc-transformation-rules-examples-remove-suffix"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Hapus akhiran `_FILES` dari skema`LEGAL_FILES`.
+ Hapus sufiks `_V1` dari tabel `CLAUSES_V1` dalam skema`LEGAL_FILES`.
+ Hapus akhiran `_CODE` dari kolom `COUNTRY_CODE` dalam tabel `CONTRACTS_V1` dalam skema`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"
    }
  ]
}
```

### Ganti sufiks
<a name="sc-transformation-rules-examples-replace-suffix"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ganti akhiran `_DEV` dengan `_PROD` dalam skema`REPORTING_DEV`.
+ Ganti sufiks `_RPT` dengan `_REPORT` dalam tabel `MONTHLY_RPT` dalam skema`REPORTING_DEV`.
+ Ganti akhiran `_ID` dengan kolom `_KEY` `CUSTOMER_ID` dalam tabel `MONTHLY_RPT` dalam skema`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"
    }
  ]
}
```

### Mengkonversi ke huruf besar
<a name="sc-transformation-rules-examples-uppercase"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ubah semua karakter dalam nama skema `CRM_LEGACY` menjadi huruf besar.
+ Ubah semua karakter dalam nama tabel `CUSTOMER_ACCOUNTS` dalam skema `CRM_LEGACY` menjadi huruf besar.
+ Ubah semua karakter dalam nama kolom `FIRST_NAME` dalam tabel `CUSTOMER_ACCOUNTS` dalam skema `CRM_LEGACY` menjadi huruf besar.

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

### Mengkonversi ke lowercase
<a name="sc-transformation-rules-examples-lowercase"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ubah semua karakter dalam nama skema `LOGISTICS` menjadi huruf kecil.
+ Ubah semua karakter dalam nama tabel `SHIPMENT_ORDERS` dalam skema `LOGISTICS` menjadi huruf kecil.
+ Ubah semua karakter dalam nama kolom `DESTINATION_CITY` dalam tabel `SHIPMENT_ORDERS` dalam skema `LOGISTICS` menjadi huruf kecil.

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

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

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ubah nama skema `TEST_SCHEMA` menjadi. `TEST_NEW_SCHEMA`
+ Ganti nama tabel `REGIONS` dalam skema `HR` menjadi. `ORG_REGIONS`
+ Ganti nama kolom `CITY` dalam tabel `LOCATIONS` dalam skema `HR` menjadi. `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"
    }
  ]
}
```

### Mengubah jenis data kolom
<a name="sc-transformation-rules-examples-change-data-type-columns"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ubah tipe data kolom `SALARY` dalam tabel `EMPLOYEES` dalam skema `PAYROLL` dari `NUMBER` ke `DECIMAL` dengan presisi 18 dan skala 4.
+ Ubah tipe data kolom `NOTES` dalam tabel `EMPLOYEES` dalam skema `PAYROLL` dari `VARCHAR2` ke `VARCHAR` dengan panjang 350.
+ Ubah tipe data kolom `HIRE_DATE` dalam tabel `EMPLOYEES` dalam skema `PAYROLL` dari `DATE` ke `TIMESTAMP WITH TIME ZONE` dengan presisi 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
      }
    }
  ]
}
```

### Ubah parameter dan tipe data variabel
<a name="sc-transformation-rules-examples-change-data-type-params"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ubah tipe data parameter `P_AMOUNT` dalam prosedur tersimpan `PROCESS_PAYMENT` dalam skema `FINANCE` menjadi`NUMERIC`.
+ Ubah tipe data variabel lokal `V_TAX_RATE` dalam prosedur tersimpan `PROCESS_PAYMENT` dalam skema `FINANCE` menjadi `NUMERIC` dengan presisi 10 dan skala 6.
+ Ubah tipe data variabel lokal `V_DESCRIPTION` dalam fungsi mandiri `CALC_DISCOUNT` dalam skema `FINANCE` menjadi `CHARACTER` dengan panjang 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
      }
    }
  ]
}
```

### Ubah fungsi mengembalikan tipe data
<a name="sc-transformation-rules-examples-change-data-type-return"></a>

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Ubah tipe data pengembalian fungsi mandiri `GET_PRODUCT_PRICE` dalam skema `FNG_COMPANY` menjadi. `BIGINT`
+ Ubah tipe data pengembalian fungsi mandiri `CALC_DISCOUNTED_PRICE` dalam skema `FNG_COMPANY` menjadi. `DECIMAL`
+ Ubah tipe data pengembalian fungsi yang dikemas `CALCULATE_TAX` dalam paket `TAX_UTILS` dalam skema `FNG_COMPANY` menjadi. `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"
      }
    }
  ]
}
```

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

Contoh berikut melakukan tindakan ini saat mengonversi dari sumber ke basis data target:
+ Tambahkan awalan `MIGR_` ke semua skema yang namanya dimulai dengan. `STG_`
+ Tambahkan awalan `MIGR_` ke semua tabel di semua skema yang namanya dimulai dengan. `STG_`
+ Tambahkan akhiran `_NEW` ke semua kolom yang namanya dimulai `SRC_` di semua tabel di semua skema yang namanya dimulai dengan. `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"
    }
  ]
}
```