

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

# Menghubungkan ke Database Oracle dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle"></a>

Anda dapat menggunakan AWS SCT untuk mengonversi skema, objek kode database, dan kode aplikasi dari Oracle Database ke target berikut: 
+ Amazon RDS for MySQL
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL
+ Amazon RDS for PostgreSQL
+ Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL
+ Amazon RDS for Oracle
+ Amazon RDS for MariaDB

Ketika sumbernya adalah database Oracle, komentar dapat dikonversi ke format yang sesuai, misalnya, database PostgreSQL. AWS SCT dapat mengkonversi komentar pada tabel, tampilan, dan kolom. Komentar dapat menyertakan apostrof; AWS SCT menggandakan apostrof saat mengonversi pernyataan SQL, seperti halnya untuk literal string.

Untuk informasi selengkapnya, lihat hal berikut.

**Topics**
+ [Hak istimewa untuk Oracle sebagai sumber](#CHAP_Source.Oracle.Permissions)
+ [Menghubungkan ke Oracle sebagai sumber](#CHAP_Source.Oracle.Connecting)
+ [Bermigrasi dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL dengan AWS Schema Conversion Tool](CHAP_Source.Oracle.ToPostgreSQL.md)
+ [Bermigrasi dari Oracle ke Amazon RDS untuk MySQL atau Amazon Aurora dengan AWS Schema Conversion Tool](CHAP_Source.Oracle.ToMySQL.md)
+ [Migrasi dari Oracle Database ke Amazon RDS for Oracle AWS Schema Conversion Tool](CHAP_Source.Oracle.ToRDSOracle.md)

## Hak istimewa untuk Oracle sebagai sumber
<a name="CHAP_Source.Oracle.Permissions"></a>

Hak istimewa yang diperlukan untuk Oracle sebagai sumber adalah sebagai berikut: 
+ MENGHUBUNG 
+ SELECT\$1CATALOG\$1ROLE 
+ PILIH KAMUS APA SAJA 
+ PILIH DI SYS.ARGUMENT\$1

## Menghubungkan ke Oracle sebagai sumber
<a name="CHAP_Source.Oracle.Connecting"></a>

Gunakan prosedur berikut untuk terhubung ke database sumber Oracle Anda dengan file. AWS Schema Conversion Tool

**Untuk terhubung ke database sumber Oracle**

1. Di dalam AWS Schema Conversion Tool, pilih **Tambahkan sumber**. 

1. Pilih **Oracle**, lalu pilih **Berikutnya**. 

   Kotak dialog **Tambah sumber** muncul.

1. Untuk **nama Koneksi**, masukkan nama untuk database Anda. AWS SCT menampilkan nama ini di pohon di panel kiri. 

1. Gunakan kredensi database dari AWS Secrets Manager atau masukkan secara manual:
   + Untuk menggunakan kredensi database dari Secrets Manager, gunakan petunjuk berikut:

     1. Untuk **AWS Secret**, pilih nama rahasianya.

     1. **Pilih Isi untuk secara otomatis mengisi semua nilai di kotak dialog koneksi database dari Secrets Manager.**

     Untuk informasi tentang menggunakan kredensil database dari Secrets Manager, lihat. [Mengkonfigurasi AWS Secrets Manager di AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)
   + Untuk memasukkan informasi koneksi database sumber Oracle secara manual, gunakan petunjuk berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

1. Pilih **Uji Koneksi** untuk memverifikasi bahwa AWS SCT dapat terhubung ke database sumber Anda. 

1. Pilih **Connect** untuk terhubung ke database sumber Anda.

# Bermigrasi dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToPostgreSQL"></a>

Saat Anda mengonversi database Oracle ke RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL, perhatikan hal-hal berikut.

**Topics**
+ [Hak istimewa untuk PostgreSQL sebagai database target](#CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget)
+ [Pengaturan konversi Oracle ke PostgreSQL](#CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings)
+ [Mengonversi urutan Oracle](#CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences)
+ [Mengonversi Oracle ROWID](#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID)
+ [Mengonversi SQL dinamis Oracle](#CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL)
+ [Mengonversi partisi Oracle](#CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning)

Saat mengkonversi objek sistem Oracle ke PostgreSQL, AWS SCT melakukan konversi seperti yang ditunjukkan pada tabel berikut.


| Objek sistem Oracle | Deskripsi | Dikonversi objek PostgreSQL | 
| --- | --- | --- | 
| V\$1 VERSI  | Menampilkan nomor versi komponen pustaka inti di Oracle Database | aws\$1oracle\$1ext.v \$1versi | 
| V\$1 CONTOH | Tampilan yang menunjukkan keadaan instance saat ini. | aws\$1oracle\$1ext.v \$1contoh | 

Anda dapat menggunakan AWS SCT untuk mengonversi file Oracle SQL\$1 Plus ke psql, yang merupakan front-end berbasis terminal ke PostgreSQL. Untuk informasi selengkapnya, lihat [Mengonversi aplikasi SQL menggunakan AWS SCT](CHAP_Converting.App.md).

## Hak istimewa untuk PostgreSQL sebagai database target
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget"></a>

Untuk menggunakan PostgreSQL sebagai target, membutuhkan hak istimewa. AWS SCT `CREATE ON DATABASE` Pastikan Anda memberikan hak istimewa ini untuk setiap basis data PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default database menjadi`"$user", public_synonyms, public`.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *db\$1name* dengan nama database target Anda. Akhirnya, ganti *your\$1password* dengan kata sandi yang aman.

Untuk menggunakan Amazon RDS for PostgreSQL sebagai target, memerlukan hak istimewa. AWS SCT `rds_superuser`

Di PostgreSQL, hanya pemilik skema atau a yang dapat menjatuhkan skema. `superuser` Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Saat Anda menggunakan pengguna yang berbeda untuk mengonversi dan menerapkan skema yang berbeda ke basis data target Anda, Anda bisa mendapatkan pesan kesalahan saat tidak AWS SCT dapat menjatuhkan skema. Untuk menghindari pesan kesalahan ini, gunakan `superuser` peran. 

## Pengaturan konversi Oracle ke PostgreSQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Oracle ke PostgreSQL, pilih Pengaturan AWS SCT di, lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih **Oracle, dan kemudian pilih Oracle** **- PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL.

Pengaturan AWS SCT konversi Oracle ke PostgreSQL termasuk opsi untuk hal berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk memungkinkan AWS SCT untuk mengkonversi tampilan terwujud Oracle ke tabel atau tampilan terwujud pada PostgreSQL. Untuk **konversi tampilan terwujud sebagai**, pilih cara mengonversi tampilan terwujud sumber Anda.
+ Untuk bekerja dengan kode Oracle sumber Anda ketika menyertakan`TO_CHAR`,`TO_DATE`, dan `TO_NUMBER` fungsi dengan parameter yang PostgreSQL tidak mendukung. Secara default, AWS SCT mengemulasi penggunaan parameter ini dalam kode yang dikonversi.

  Ketika kode Oracle sumber Anda hanya menyertakan parameter yang didukung PostgreSQL, Anda dapat menggunakan PostgreSQL asli,, dan fungsi. `TO_CHAR` `TO_DATE` `TO_NUMBER` Dalam hal ini, kode yang dikonversi bekerja lebih cepat. Untuk memasukkan hanya parameter ini, pilih nilai berikut:
  + **Fungsi TO\$1CHAR () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1DATE () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1NUMBER () tidak menggunakan string pemformatan khusus Oracle**
+ Untuk mengatasi ketika database Oracle sumber Anda hanya menyimpan nilai integer di kolom kunci primer atau asing dari tipe `NUMBER` data, AWS SCT dapat mengonversi kolom ini ke tipe `BIGINT` data. Pendekatan ini meningkatkan kinerja kode Anda yang dikonversi. Untuk mengambil pendekatan ini, pilih **Konversi kolom kunci utama/asing NOMOR ke kolom BIGINT**. Pastikan sumber Anda tidak menyertakan nilai floating point di kolom ini untuk menghindari kehilangan data.
+ Untuk melewati pemicu dan kendala yang dinonaktifkan dalam kode sumber Anda. Untuk melakukannya, pilih **Abaikan pemicu dan kendala yang dinonaktifkan**.
+ Untuk digunakan AWS SCT untuk mengkonversi variabel string yang disebut sebagai SQL dinamis. Kode database Anda dapat mengubah nilai variabel string ini. Untuk memastikan bahwa AWS SCT selalu mengonversi nilai terbaru dari variabel string ini, pilih **Konversi kode SQL dinamis yang dibuat dalam rutinitas yang disebut**.
+ Untuk mengatasi PostgreSQL versi 10 dan sebelumnya tidak mendukung prosedur. Jika Anda atau pengguna Anda tidak terbiasa menggunakan prosedur di PostgreSQL, dapat mengonversi prosedur Oracle ke fungsi PostgreSQL AWS SCT . Untuk melakukannya, pilih **Konversi prosedur ke fungsi**.
+ Untuk melihat informasi tambahan tentang item tindakan yang terjadi. Untuk melakukannya, Anda dapat menambahkan fungsi tertentu ke paket ekstensi dengan memilih **Tambah pada blok peningkatan pengecualian untuk masalah migrasi dengan tingkat keparahan berikutnya**. Kemudian pilih tingkat keparahan untuk meningkatkan pengecualian yang ditentukan pengguna.
+ Untuk bekerja dengan database Oracle sumber yang mungkin menyertakan kendala dengan nama yang dihasilkan secara otomatis. Jika kode sumber Anda menggunakan nama-nama ini, pastikan Anda memilih **Konversi nama kendala yang dihasilkan sistem menggunakan nama asli sumber**. Jika kode sumber Anda menggunakan batasan ini tetapi tidak menggunakan namanya, hapus opsi ini untuk meningkatkan kecepatan konversi.
+ Untuk mengatasi apakah database dan aplikasi Anda berjalan di zona waktu yang berbeda. Secara default, AWS SCT mengemulasi zona waktu dalam kode yang dikonversi. Namun, Anda tidak memerlukan emulasi ini ketika database dan aplikasi Anda menggunakan zona waktu yang sama. Dalam hal ini, pilih **Zona waktu di sisi klien cocok dengan zona waktu di server**.
+ Untuk mengatasi apakah basis data sumber dan target Anda berjalan di zona waktu yang berbeda. Jika mereka melakukannya, fungsi yang mengemulasi fungsi Oracle `SYSDATE` bawaan mengembalikan nilai yang berbeda dibandingkan dengan fungsi sumber. Untuk memastikan bahwa fungsi sumber dan target Anda mengembalikan nilai yang sama, pilih **Setel zona waktu default untuk emulasi SYSDATE**.
+ Untuk menggunakan fungsi dari ekstensi orafce dalam kode konversi Anda. Untuk melakukannya, untuk **implementasi Use orafce**, pilih fungsi yang akan digunakan. Untuk informasi lebih lanjut tentang orafce, lihat [orafce](https://github.com/orafce/orafce) di. GitHub

## Mengonversi urutan Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences"></a>

AWS SCT mengkonversi urutan dari Oracle ke PostgreSQL. Jika Anda menggunakan urutan untuk mempertahankan batasan integritas, pastikan nilai baru dari urutan yang dimigrasi tidak tumpang tindih dengan nilai yang ada.

**Untuk mengisi urutan yang dikonversi dengan nilai terakhir dari database sumber**

1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

1. Pilih **Pengaturan**, lalu pilih **Pengaturan konversi**. 

1. Dari daftar atas, pilih **Oracle, dan kemudian pilih Oracle** **- PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL. 

1. Pilih **Isi urutan yang dikonversi dengan nilai terakhir yang dihasilkan di sisi sumber**.

1. Pilih **OK** untuk menyimpan pengaturan dan menutup kotak dialog **Pengaturan konversi**. 

## Mengonversi Oracle ROWID
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID"></a>

 Dalam database Oracle, pseudocolumn ROWID berisi alamat baris tabel. Pseudocolumn ROWID unik untuk Oracle, sehingga AWS SCT mengkonversi pseudocolumn ROWID ke kolom data pada PostgreSQL. Dengan menggunakan konversi ini, Anda dapat menyimpan informasi ROWID. 

Ketika mengkonversi pseudocolumn ROWID, AWS SCT dapat membuat kolom data dengan tipe data. `bigint` Jika tidak ada kunci primer, AWS SCT menetapkan kolom ROWID sebagai kunci utama. Jika kunci utama ada, AWS SCT menetapkan kolom ROWID dengan kendala unik.

Jika kode database sumber Anda mencakup operasi dengan ROWID, yang tidak dapat Anda jalankan menggunakan tipe data numerik, AWS SCT dapat membuat kolom data dengan tipe `character varying` data.

**Untuk membuat kolom data untuk Oracle ROWID untuk sebuah proyek**

1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

1. Pilih **Pengaturan**, lalu pilih **Pengaturan konversi**. 

1. Dari daftar atas, pilih **Oracle, dan kemudian pilih Oracle** **- PostgreSQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke PostgreSQL. 

1. Untuk **Menghasilkan ID baris**, lakukan salah satu hal berikut: 
   + Pilih **Hasilkan sebagai identitas** untuk membuat kolom data numerik.
   + Pilih **Hasilkan sebagai tipe domain karakter** untuk membuat kolom data karakter.

1. Pilih **OK** untuk menyimpan pengaturan dan menutup kotak dialog **Pengaturan konversi**. 

## Mengonversi SQL dinamis Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL"></a>

 Oracle menyediakan dua cara untuk mengimplementasikan SQL dinamis: menggunakan pernyataan EXECUTE IMMEDIATE atau memanggil prosedur dalam paket DBMS\$1SQL. Jika database Oracle sumber Anda menyertakan objek dengan SQL dinamis, gunakan AWS SCT untuk mengonversi pernyataan SQL dinamis Oracle ke PostgreSQL.

**Untuk mengkonversi SQL dinamis Oracle ke PostgreSQL**

1. Buka AWS SCT proyek Anda dengan Oracle sebagai sumbernya.

1. Pilih objek database yang menggunakan SQL dinamis dalam tampilan pohon sumber Oracle.

1. Buka menu konteks (klik kanan) untuk objek, pilih **Convert schema**, dan setuju untuk mengganti objek jika ada. Tangkapan layar berikut menunjukkan prosedur yang dikonversi di bawah prosedur Oracle dengan SQL dinamis.  
![\[Konversi SQL dinamis\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/images/dynamicsql1.png)

## Mengonversi partisi Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning"></a>

AWS SCT saat ini mendukung metode partisi berikut: 
+ Kisaran
+ Daftar
+ Rentang multicolumn
+ Hash
+ Komposit (daftar-daftar, daftar rentang, daftar-rentang, daftar-hash, rentang-hash, hash hash)

# Bermigrasi dari Oracle ke Amazon RDS untuk MySQL atau Amazon Aurora dengan AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToMySQL"></a>

Untuk meniru fungsi database Oracle dalam kode MySQL Anda yang dikonversi, gunakan paket ekstensi Oracle ke MySQL. AWS SCT Untuk informasi selengkapnya tentang paket ekstensi, lihat[Menggunakan paket ekstensi dengan AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Hak istimewa untuk MySQL sebagai basis data target](#CHAP_Source.Oracle.ToMySQL.ConfigureTarget)
+ [Pengaturan konversi Oracle ke MySQL](#CHAP_Source.Oracle.ToMySQL.ConversionSettings)
+ [Pertimbangan migrasi](#CHAP_Source.Oracle.ToMySQL.MigrationConsiderations)
+ [Mengonversi pernyataan WITH di Oracle ke RDS untuk MySQL atau Amazon Aurora MySQL](#CHAP_Source.Oracle.ToMySQL.With)

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.Oracle.ToMySQL.ConfigureTarget"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT DI \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA \$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ BUAT TABEL SEMENTARA DI \$1 . \$1
+ AWS\$1LAMBDA\$1AKSES
+ SISIPKAN, PERBARUI PADA AWS\$1ORACLE \$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1ORACLE \$1EXT\$1DATA. \$1

Jika Anda menggunakan database MySQL versi 5.7 atau lebih rendah sebagai target, maka berikan izin INVOKE LAMBDA \$1.\$1 alih-alih \$1ACCESS. AWS\$1LAMBDA Untuk database MySQL versi 8.0 dan yang lebih tinggi, berikan izin. AWS\$1LAMBDA\$1ACCESS 

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON *.* TO 'user_name';
GRANT AWS_LAMBDA_ACCESS TO 'user_name';
GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_EXT_DATA.* TO 'user_name';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Jika Anda menggunakan database MySQL versi 5.7 atau lebih rendah sebagai target, maka gunakan sebagai gantinya. `GRANT INVOKE LAMBDA ON *.* TO 'user_name'` `GRANT AWS_LAMBDA_ACCESS TO 'user_name'`

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan logging biner dalam instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

## Pengaturan konversi Oracle ke MySQL
<a name="CHAP_Source.Oracle.ToMySQL.ConversionSettings"></a>

**Untuk mengedit pengaturan konversi Oracle ke MySQL, pilih Pengaturan AWS SCT di, **lalu pilih** Pengaturan konversi.** Dari daftar atas, pilih **Oracle**, dan kemudian pilih **Oracle - MySQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi Oracle ke MySQL.

Pengaturan konversi Oracle ke MySQL AWS SCT di menyertakan opsi untuk yang berikut:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk mengatasi bahwa database Oracle sumber Anda dapat menggunakan `ROWID` pseudocolumn tetapi MySQL tidak mendukung fungsionalitas serupa. AWS SCT dapat meniru `ROWID` pseudocolumn dalam kode yang dikonversi. Untuk melakukannya, pilih **Hasilkan sebagai identitas** untuk **Hasilkan ID baris?** .

  Jika kode Oracle sumber Anda tidak menggunakan `ROWID` pseudocolumn, pilih **Don't generate for Generate row** **ID?** Dalam hal ini, kode yang dikonversi bekerja lebih cepat.
+ Untuk bekerja dengan kode Oracle sumber Anda ketika menyertakan`TO_CHAR`,`TO_DATE`, dan `TO_NUMBER` fungsi dengan parameter yang MySQL tidak mendukung. Secara default, AWS SCT mengemulasi penggunaan parameter ini dalam kode yang dikonversi.

  Ketika kode Oracle sumber Anda hanya menyertakan parameter yang didukung PostgreSQL, Anda dapat menggunakan MySQL asli,, dan fungsi. `TO_CHAR` `TO_DATE` `TO_NUMBER` Dalam hal ini, kode yang dikonversi bekerja lebih cepat. Untuk memasukkan hanya parameter ini, pilih nilai berikut:
  + **Fungsi TO\$1CHAR () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1DATE () tidak menggunakan string pemformatan khusus Oracle**
  + **Fungsi TO\$1NUMBER () tidak menggunakan string pemformatan khusus Oracle**
+ Untuk menambahkan apakah database dan aplikasi Anda berjalan di zona waktu yang berbeda. Secara default, AWS SCT mengemulasi zona waktu dalam kode yang dikonversi. Namun, Anda tidak memerlukan emulasi ini ketika database dan aplikasi Anda menggunakan zona waktu yang sama. Dalam hal ini, pilih **Zona waktu di sisi klien cocok dengan zona waktu di server**.

## Pertimbangan migrasi
<a name="CHAP_Source.Oracle.ToMySQL.MigrationConsiderations"></a>

Saat Anda mengonversi Oracle ke RDS untuk MySQL atau Aurora MySQL, untuk mengubah urutan pernyataan berjalan, Anda dapat menggunakan pernyataan dan label. `GOTO` Setiap pernyataan PL/SQL yang mengikuti `GOTO` pernyataan dilewati, dan pemrosesan berlanjut pada label. Anda dapat menggunakan `GOTO` pernyataan dan label di mana saja dalam blok prosedur, batch, atau pernyataan. Anda juga dapat melanjutkan pernyataan GOTO.

MySQL tidak menggunakan pernyataan. `GOTO` Ketika AWS SCT mengkonversi kode yang berisi `GOTO` pernyataan, itu mengubah pernyataan untuk menggunakan pernyataan `BEGIN…END` atau`LOOP…END LOOP`. 

Anda dapat menemukan contoh bagaimana AWS SCT mengkonversi `GOTO` pernyataan dalam tabel berikut.


| Pernyataan Oracle | Pernyataan MySQL | 
| --- | --- | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   GOTO label1;<br />   statement2;<br />   ....<br />   label1:<br />   Statement3;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br /> label1:<br /> BEGIN<br />   ....<br />   statement1;<br />   ....<br />   LEAVE label1;<br />   statement2;<br />   ....<br /> END;<br />   Statement3;<br />   ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   GOTO label1;<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   LOOP<br />    statement2;<br />    ....<br />    ITERATE label1;<br />    LEAVE label1;<br />   END LOOP; <br />    statement3;<br />    ....<br />    statement4;<br />    ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   BEGIN<br />    statement2;<br />    ....    <br />    statement3;<br />    ....<br />    statement4;<br />    ....    <br />   END; <br />END<br /></pre>  | 

## Mengonversi pernyataan WITH di Oracle ke RDS untuk MySQL atau Amazon Aurora MySQL
<a name="CHAP_Source.Oracle.ToMySQL.With"></a>

Anda menggunakan klausa WITH (subquery\$1factoring) di Oracle untuk menetapkan nama (query\$1name) ke blok subquery. Anda kemudian dapat mereferensikan blok subquery beberapa tempat dalam kueri dengan menentukan query\$1name. Jika blok subquery tidak berisi link atau parameter (lokal, prosedur, fungsi, paket), kemudian AWS SCT mengkonversi klausa ke tampilan atau tabel sementara. 

Keuntungan dari mengkonversi klausa ke tabel sementara adalah bahwa referensi berulang ke subquery mungkin lebih efisien. Efisiensi yang lebih besar adalah karena data mudah diambil dari tabel sementara daripada diminta oleh setiap referensi. Anda dapat meniru ini dengan menggunakan tampilan tambahan atau tabel sementara. Nama tampilan menggunakan format`<procedure_name>$<subselect_alias>`.

Anda dapat menemukan contoh dalam tabel berikut. 


| Pernyataan Oracle | Pernyataan MySQL | 
| --- | --- | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_VARIABLE_01<br />     (p_state IN NUMBER)<br />AS<br />  l_dept_id NUMBER := 1; <br />BEGIN<br />FOR cur IN  <br />           (WITH dept_empl(id, name, surname, <br />              lastname, state, dept_id)<br />              AS<br />                  (<br />                    SELECT id, name, surname,  <br />                     lastname, state, dept_id <br />                      FROM test_ora_pg.dept_employees<br />                     WHERE state = p_state AND <br />                       dept_id = l_dept_id)<br />            SELECT id,state   <br />              FROM dept_empl<br />            ORDER BY id)  LOOP<br />  NULL;<br />END LOOP;<br /></pre>  |  <pre>CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VARIABLE_01(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 1;<br />    DECLARE var$id VARCHAR (8000);<br />    DECLARE var$state VARCHAR (8000);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        ID, STATE<br />        FROM (SELECT<br />            ID, NAME, SURNAME, LASTNAME, STATE, DEPT_ID<br />            FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />            WHERE STATE = par_p_state AND DEPT_ID = var_l_dept_id) AS dept_empl<br />        ORDER BY ID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$id, var$state;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_REGULAR_MULT_01<br />AS    <br />BEGIN<br /><br /> FOR cur IN  (<br />               WITH dept_empl AS<br />                   (<br />                        SELECT id, name, surname, <br />                         lastname, state, dept_id <br />                          FROM test_ora_pg.dept_employees<br />                         WHERE state = 1),<br />                    dept AS <br />                   (SELECT id deptid, parent_id, <br />                      name deptname<br />                      FROM test_ora_pg.department                <br />                   )<br />                SELECT dept_empl.*,dept.*          <br />                 FROM dept_empl, dept<br />                 WHERE dept_empl.dept_id = dept.deptid<br />              ) LOOP<br />              NULL;<br />            END LOOP;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br /> `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT id, name, surname, lastname, state, dept_id <br />   FROM test_ora_pg.dept_employees<br />  WHERE state = 1);<br />  <br />CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br /> `(deptid, parent_id,deptname)<br />AS<br />(SELECT id deptid, parent_id, name deptname<br />   FROM test_ora_pg.department);  <br /><br /><br />CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br />BEGIN<br />    DECLARE var$ID DOUBLE;<br />    DECLARE var$NAME VARCHAR (30);<br />    DECLARE var$SURNAME VARCHAR (30);<br />    DECLARE var$LASTNAME VARCHAR (30);<br />    DECLARE var$STATE DOUBLE;<br />    DECLARE var$DEPT_ID DOUBLE;<br />    DECLARE var$deptid DOUBLE;<br />    DECLARE var$PARENT_ID DOUBLE;<br />    DECLARE var$deptname VARCHAR (200);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        dept_empl.*, dept.*<br />        FROM TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br />          ` AS dept_empl,<br />             TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br />          ` AS dept<br />        WHERE dept_empl.DEPT_ID = dept.DEPTID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />    FETCH cur INTO var$ID, var$NAME, var$SURNAME, <br />     var$LASTNAME, var$STATE, var$DEPT_ID, var$deptid, <br />     var$PARENT_ID, var$deptname;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /><br />call test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br />  TEST_ORA_PG.P_WITH_SELECT_VAR_CROSS_02(p_state IN NUMBER)<br />AS    <br />   l_dept_id NUMBER := 10;<br />BEGIN<br /> FOR cur IN  (<br />               WITH emp AS              <br />                    (SELECT id, name, surname, <br />                      lastname, state, dept_id <br />                       FROM test_ora_pg.dept_employees<br />                      WHERE dept_id > 10                 <br />                    ),<br />                    active_emp AS<br />                    (<br />                      SELECT id<br />                        FROM emp<br />                       WHERE emp.state = p_state <br />                    )<br />                    <br />                SELECT *          <br />                  FROM active_emp                 <br />              ) LOOP<br />         NULL;<br />  END LOOP;<br />  <br />END;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_VAR_CROSS_01$emp<br />    `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT<br />       id, name, surname, lastname, <br />       state, dept_id<br />  FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />  WHERE DEPT_ID > 10);<br /><br /><br />CREATE PROCEDURE <br />   test_ora_pg.P_WITH_SELECT_VAR_CROSS_02(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 10;<br />    DECLARE var$ID DOUBLE;<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT *<br />                             FROM (SELECT<br />                                      ID<br />                                     FROM <br />                             TEST_ORA_PG.<br />                              `P_WITH_SELECT_VAR_CROSS_01$emp` AS emp<br />                                   WHERE emp.STATE = par_p_state) <br />                                    AS active_emp;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$ID;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 

# Migrasi dari Oracle Database ke Amazon RDS for Oracle AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Beberapa hal yang perlu dipertimbangkan saat memigrasikan skema dan kode Oracle ke Amazon RDS for Oracle: 
+ AWS SCT dapat menambahkan objek direktori ke pohon objek. *Objek direktori* adalah struktur logis yang masing-masing mewakili direktori fisik pada sistem file server. Anda dapat menggunakan objek direktori dengan paket seperti DBMS\$1LOB, UTL\$1FILE, DBMS\$1FILE\$1TRANSFER, utilitas DATAPUMP, dan sebagainya.
+ AWS SCT mendukung konversi ruang meja Oracle ke Amazon RDS for Oracle DB instans. Oracle menyimpan data secara logis di tablespaces dan secara fisik dalam file data yang terkait dengan tablespace yang sesuai. Di Oracle, Anda dapat membuat tablespace dengan nama file data. Amazon RDS mendukung Oracle Managed Files (OMF) untuk file data, file log, dan file kontrol saja. AWS SCT membuat file data yang dibutuhkan selama konversi.
+ AWS SCT dapat mengonversi peran dan hak istimewa tingkat server. Mesin database Oracle menggunakan keamanan berbasis peran. Peran adalah kumpulan hak istimewa yang dapat Anda berikan atau cabut dari pengguna. Peran yang telah ditentukan di Amazon RDS, yang disebut DBA, biasanya memungkinkan semua hak administratif pada mesin database Oracle. Hak istimewa berikut ini tidak tersedia untuk peran DBA di instans DB Amazon RDS yang menggunakan mesin Oracle:
  + Mengubah basis data
  + Mengubah sistem
  + Buat direktori apa pun
  + Berikan hak istimewa apa pun
  + Berikan peran apa pun
  + Buat pekerjaan eksternal

  Anda dapat memberikan semua hak istimewa lainnya ke peran pengguna Amazon RDS for Oracle, termasuk hak istimewa pemfilteran dan kolom lanjutan.
+ AWS SCT mendukung konversi pekerjaan Oracle menjadi pekerjaan yang dapat berjalan di Amazon RDS for Oracle. Ada beberapa batasan untuk konversi, termasuk yang berikut:
  + Pekerjaan yang dapat dieksekusi tidak didukung.
  + Menjadwalkan pekerjaan yang menggunakan tipe data ANYDATA sebagai argumen tidak didukung.
+ Oracle Real Application Clusters (RAC) One Node adalah opsi untuk Oracle Database Enterprise Edition yang diperkenalkan dengan Oracle Database 11g Release 2. Amazon RDS for Oracle tidak mendukung fitur RAC. Untuk ketersediaan tinggi, gunakan Amazon RDS Multi-AZ. 

  Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan mempertahankan replika siaga yang sinkron di Availability Zone yang berbeda. Instans DB utama direplikasi secara sinkron di seluruh Availability Zones ke replika siaga. Fungsionalitas ini menyediakan redundansi data, menghilangkan I/O pembekuan, dan meminimalkan lonjakan latensi selama pencadangan sistem.
+ Oracle Spatial menyediakan skema dan fungsi SQL yang memfasilitasi penyimpanan, pengambilan, pembaruan, dan kueri kumpulan data spasial dalam basis data Oracle. Oracle Locator menyediakan kemampuan yang biasanya dibutuhkan untuk mendukung aplikasi berbasis layanan nirkabel dan internet serta solusi GIS berbasis mitra. Oracle Locator adalah subset terbatas dari Oracle Spatial.

  Untuk menggunakan fitur Oracle Spatial dan Oracle Locator, tambahkan opsi SPATIAL atau opsi LOCATOR (saling eksklusif) ke grup opsi instans DB Anda.

  Ada beberapa prasyarat untuk menggunakan Oracle Spatial dan Oracle Locator pada instans Amazon RDS for Oracle DB:
  + Instans harus menggunakan Oracle Enterprise Edition versi 12.1.0.2.v6 atau lebih tinggi, atau 11.2.0.4.v10 atau lebih tinggi.
  + Instans harus berada di dalam virtual private cloud (VPC).
  + Instance harus kelas instans DB yang dapat mendukung fitur Oracle. Misalnya, Oracle Spatial tidak didukung untuk kelas instans db.m1.small, db.t1.micro, db.t2.micro, atau db.t2.small DB. Untuk informasi selengkapnya, lihat [dukungan kelas instans DB untuk Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses).
  + Instans harus mengaktifkan opsi Auto Minor Version Upgrade. Amazon RDS memperbarui instans DB Anda ke Oracle PSU terbaru jika ada kerentanan keamanan dengan skor CVSS 9\$1 atau kerentanan keamanan lainnya yang diumumkan. Untuk informasi selengkapnya, silakan lihat 

    [Pengaturan untuk instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Jika instans DB Anda adalah versi 11.2.0.4.v10 atau lebih tinggi, Anda harus menginstal opsi XMLDB. Untuk informasi selengkapnya, silakan lihat

    [Oracle XML-DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html).
  + Anda harus memiliki lisensi Oracle Spatial dari Oracle. Untuk informasi selengkapnya, lihat [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) dalam dokumentasi Oracle.
+ Data Guard disertakan dengan Oracle Database Enterprise Edition. Untuk ketersediaan tinggi, gunakan fitur Amazon RDS Multi-AZ. 

  Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan mempertahankan replika siaga yang sinkron di Availability Zone yang berbeda. Instans DB utama direplikasi secara sinkron di seluruh Availability Zones ke replika siaga. Fungsionalitas ini menyediakan redundansi data, menghilangkan I/O pembekuan, dan meminimalkan lonjakan latensi selama pencadangan sistem.
+ AWS SCT mendukung konversi objek Oracle DBMS\$1SCHEDULER saat bermigrasi ke Amazon RDS for Oracle. Laporan AWS SCT penilaian menunjukkan apakah objek jadwal dapat dikonversi. Untuk informasi selengkapnya tentang penggunaan objek jadwal dengan Amazon RDS, lihat dokumentasi [Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler)
+ Untuk konversi Oracle ke Amazon RDS for Oracle, DB Links didukung. Sebuah link database adalah objek skema dalam satu database yang memungkinkan Anda untuk mengakses objek pada database lain. Database lain tidak perlu menjadi database Oracle. Namun, untuk mengakses database non-Oracle Anda harus menggunakan Oracle Heterogenous Services.

  Setelah Anda membuat link database, Anda dapat menggunakan link dalam pernyataan SQL untuk merujuk ke tabel, tampilan, dan PL/SQL objek dalam database lainnya. Untuk menggunakan link database, tambahkan `@dblink` ke tabel, tampilan, atau nama PL/SQL objek. Anda dapat menanyakan tabel atau tampilan di database lain dengan pernyataan SELECT. Untuk informasi selengkapnya tentang menggunakan tautan database Oracle, lihat dokumentasi [Oracle](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Untuk informasi selengkapnya tentang menggunakan tautan database dengan Amazon RDS, lihat dokumentasi [Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks)
+ Laporan AWS SCT penilaian menyediakan metrik server untuk konversi. Metrik tentang instans Oracle Anda ini mencakup yang berikut:
  + Komputasi dan kapasitas memori instans DB target.
  + Fitur Oracle yang tidak didukung seperti Real Application Clusters yang tidak didukung Amazon RDS.
  + Beban baca-tulis disk
  + Total throughput disk rata-rata
  + Informasi server seperti nama server, OS, nama host, dan set karakter.

## Hak istimewa untuk RDS untuk Oracle sebagai target
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Untuk bermigrasi ke Amazon RDS for Oracle, buat pengguna database istimewa. Anda dapat menggunakan contoh kode berikut.

```
CREATE USER user_name IDENTIFIED BY your_password;

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE TO user_name;
GRANT CREATE ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY ASSEMBLY TO user_name;
GRANT ALTER ANY RULE TO user_name;
GRANT SELECT ANY DICTIONARY TO user_name;
GRANT ALTER ANY DIMENSION TO user_name;
GRANT CREATE ANY DIMENSION TO user_name;
GRANT ALTER ANY TYPE TO user_name;
GRANT DROP ANY TRIGGER TO user_name;
GRANT CREATE ANY VIEW TO user_name;
GRANT ALTER ANY CUBE BUILD PROCESS TO user_name;
GRANT CREATE ANY CREDENTIAL TO user_name;
GRANT DROP ANY CUBE DIMENSION TO user_name;
GRANT DROP ANY ASSEMBLY TO user_name;
GRANT DROP ANY PROCEDURE TO user_name;
GRANT ALTER ANY PROCEDURE TO user_name;
GRANT ALTER ANY SQL TRANSLATION PROFILE TO user_name;
GRANT DROP ANY MEASURE FOLDER TO user_name;
GRANT CREATE ANY MEASURE FOLDER TO user_name;
GRANT DROP ANY CUBE TO user_name;
GRANT DROP ANY MINING MODEL TO user_name;
GRANT CREATE ANY MINING MODEL TO user_name;
GRANT DROP ANY EDITION TO user_name;
GRANT CREATE ANY EVALUATION CONTEXT TO user_name;
GRANT DROP ANY DIMENSION TO user_name;
GRANT ALTER ANY INDEXTYPE TO user_name;
GRANT DROP ANY TYPE TO user_name;
GRANT CREATE ANY PROCEDURE TO user_name;
GRANT CREATE ANY SQL TRANSLATION PROFILE TO user_name;
GRANT CREATE ANY CUBE TO user_name;
GRANT COMMENT ANY MINING MODEL TO user_name;
GRANT ALTER ANY MINING MODEL TO user_name;
GRANT DROP ANY SQL PROFILE TO user_name;
GRANT CREATE ANY JOB TO user_name;
GRANT DROP ANY EVALUATION CONTEXT TO user_name;
GRANT ALTER ANY EVALUATION CONTEXT TO user_name;
GRANT CREATE ANY INDEXTYPE TO user_name;
GRANT CREATE ANY OPERATOR TO user_name;
GRANT CREATE ANY TRIGGER TO user_name;
GRANT DROP ANY ROLE TO user_name;
GRANT DROP ANY SEQUENCE TO user_name;
GRANT DROP ANY CLUSTER TO user_name;
GRANT DROP ANY SQL TRANSLATION PROFILE TO user_name;
GRANT ALTER ANY ASSEMBLY TO user_name;
GRANT CREATE ANY RULE SET TO user_name;
GRANT ALTER ANY OUTLINE TO user_name;
GRANT UNDER ANY TYPE TO user_name;
GRANT CREATE ANY TYPE TO user_name;
GRANT DROP ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY ROLE TO user_name;
GRANT DROP ANY VIEW TO user_name;
GRANT ALTER ANY INDEX TO user_name;
GRANT COMMENT ANY TABLE TO user_name;
GRANT CREATE ANY TABLE TO user_name;
GRANT CREATE USER TO user_name;
GRANT DROP ANY RULE SET TO user_name;
GRANT CREATE ANY CONTEXT TO user_name;
GRANT DROP ANY INDEXTYPE TO user_name;
GRANT ALTER ANY OPERATOR TO user_name;
GRANT CREATE ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY SEQUENCE TO user_name;
GRANT DROP ANY SYNONYM TO user_name;
GRANT CREATE ANY SYNONYM TO user_name;
GRANT DROP USER TO user_name;
GRANT ALTER ANY MEASURE FOLDER TO user_name;
GRANT ALTER ANY EDITION TO user_name;
GRANT DROP ANY RULE TO user_name;
GRANT CREATE ANY RULE TO user_name;
GRANT ALTER ANY RULE SET TO user_name;
GRANT CREATE ANY OUTLINE TO user_name;
GRANT UNDER ANY TABLE TO user_name;
GRANT UNDER ANY VIEW TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
GRANT ALTER ANY CLUSTER TO user_name;
GRANT CREATE ANY CLUSTER TO user_name;
GRANT ALTER ANY TABLE TO user_name;
GRANT CREATE ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY EDITION TO user_name;
GRANT CREATE ANY SQL PROFILE TO user_name;
GRANT ALTER ANY SQL PROFILE TO user_name;
GRANT DROP ANY OUTLINE TO user_name;
GRANT DROP ANY CONTEXT TO user_name;
GRANT DROP ANY OPERATOR TO user_name;
GRANT DROP ANY LIBRARY TO user_name;
GRANT ALTER ANY LIBRARY TO user_name;
GRANT CREATE ANY LIBRARY TO user_name;
GRANT ALTER ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY TRIGGER TO user_name;
GRANT CREATE ANY SEQUENCE TO user_name;
GRANT DROP ANY INDEX TO user_name;
GRANT CREATE ANY INDEX TO user_name;
GRANT DROP ANY TABLE TO user_name;
GRANT SELECT_CATALOG_ROLE TO user_name;
GRANT SELECT ANY SEQUENCE TO user_name;

-- Database Links
GRANT CREATE DATABASE LINK TO user_name;
GRANT CREATE PUBLIC DATABASE LINK TO user_name;
GRANT DROP PUBLIC DATABASE LINK TO user_name;


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO user_name;

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO user_name;
GRANT DROP TABLESPACE TO user_name;

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to user_name;
grant aq_administrator_role to user_name;

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO user_name;

-- Roles
GRANT RESOURCE TO user_name;
GRANT CONNECT TO user_name;
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

## Keterbatasan saat mengonversi Oracle ke Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Beberapa batasan yang harus Anda pertimbangkan saat memigrasikan skema dan kode Oracle ke Amazon RDS for Oracle: 
+  Peran yang telah ditentukan di Amazon RDS, yang disebut DBA, biasanya memungkinkan semua hak administratif pada mesin database Oracle. Hak istimewa berikut ini tidak tersedia untuk peran DBA di instans DB Amazon RDS yang menggunakan mesin Oracle:
  + Mengubah basis data
  + Mengubah sistem
  + Buat direktori apa pun
  + Berikan hak istimewa apa pun
  + Berikan peran apa pun
  + Buat pekerjaan eksternal

  Anda dapat memberikan semua hak istimewa lainnya untuk peran pengguna Oracle RDS.
+ Amazon RDS for Oracle mendukung audit tradisional, audit halus menggunakan paket DBMS\$1FGA, dan Oracle Unified Audit.
+ Amazon RDS for Oracle tidak mendukung pengambilan data perubahan (CDC). Untuk melakukan CDC selama dan setelah migrasi database, gunakan AWS Database Migration Service.