

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

# Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database"></a>

*Sai Parthasaradhi dan Veeranjaneyulu Grandhi, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-summary"></a>

Pola ini menunjukkan cara memigrasikan kode kesalahan Oracle Database ke database [Amazon Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) Edition dengan menggunakan tabel metadata yang telah ditentukan sebelumnya.

Kode kesalahan Oracle Database tidak selalu memiliki kode kesalahan PostgreSQL yang sesuai. Perbedaan kode kesalahan ini dapat menyulitkan untuk mengkonfigurasi logika pemrosesan prosedur atau fungsi dalam arsitektur PostgreSQL target.

Anda dapat menyederhanakan proses dengan menyimpan kode kesalahan basis data sumber dan target yang berarti bagi PL/pgSQL program Anda dalam tabel metadata. Kemudian, konfigurasikan tabel untuk menandai kode kesalahan Oracle Database yang valid dan petakan ke ekuivalen PostgreSQL mereka sebelum melanjutkan dengan logika proses yang tersisa. Jika kode kesalahan Oracle Database tidak ada dalam tabel metadata, proses keluar dengan pengecualian. Kemudian, Anda dapat meninjau detail kesalahan secara manual dan menambahkan kode kesalahan baru ke tabel jika program Anda memerlukannya.

Dengan menggunakan konfigurasi ini, database Amazon Aurora PostgreSQL yang kompatibel dapat menangani kesalahan dengan cara yang sama seperti database Oracle sumber Anda.

**catatan**  
Mengkonfigurasi database PostgreSQL untuk menangani kode kesalahan Oracle Database dengan benar biasanya memerlukan perubahan pada database dan kode aplikasi.

## Prasyarat dan batasan
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sumber Oracle Database dengan layanan instance dan listener aktif dan berjalan
+ Cluster yang kompatibel dengan Amazon Aurora PostgreSQL yang aktif dan berjalan
+ Keakraban dengan Oracle Database
+ Keakraban dengan database PostgreSQL

## Arsitektur
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-architecture"></a>

Diagram berikut menunjukkan contoh alur kerja database yang kompatibel dengan Amazon Aurora PostgreSQL untuk validasi dan penanganan kode kesalahan data:

![Validasi kode kesalahan data dan penanganan untuk database yang kompatibel dengan Aurora PostgreSQL.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)


Diagram menunjukkan alur kerja berikut:

1. Sebuah tabel berisi kode kesalahan Oracle Database dan klasifikasi dan kode kesalahan PostgreSQL yang setara dan klasifikasi. Tabel ini mencakup kolom **valid\_error** yang mengklasifikasikan jika kode kesalahan tertentu yang telah ditentukan valid atau tidak.

1. **Ketika sebuah PL/pgSQL fungsi (**func\_processdata**) melempar pengecualian, ia memanggil fungsi kedua PL/pgSQL (error\_validation).**

1. Fungsi **error\_validation** menerima kode kesalahan Oracle Database sebagai argumen masukan. Kemudian, fungsi memeriksa kode kesalahan yang masuk terhadap tabel untuk melihat apakah kesalahan termasuk dalam tabel.

1. Jika kode kesalahan Oracle Database disertakan dalam tabel, maka fungsi **error\_validation** mengembalikan nilai **TRUE** dan logika proses berlanjut. Jika kode kesalahan tidak disertakan dalam tabel, maka fungsi mengembalikan nilai **FALSE**, dan logika proses keluar dengan pengecualian.

1. Ketika fungsi mengembalikan nilai **FALSE**, maka rincian kesalahan secara manual ditinjau oleh lead fungsional aplikasi untuk menentukan validitasnya.

1. Kode kesalahan baru kemudian ditambahkan secara manual ke tabel atau tidak. Jika kode kesalahan valid dan ditambahkan ke tabel, maka fungsi **error\_validation** mengembalikan nilai **TRUE** saat berikutnya pengecualian terjadi. Jika kode kesalahan tidak valid, dan proses harus gagal ketika pengecualian terjadi, maka kode kesalahan tidak ditambahkan ke tabel.

**Tumpukan teknologi**
+ Amazon Aurora PostgreSQL
+ pgAdmin
+ Pengembang Oracle SQL

## Alat
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-tools"></a>
+ [Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.
+ [pgAdmin](https://www.pgadmin.org/) adalah alat administrasi dan pengembangan sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang menyederhanakan pembuatan, pemeliharaan, dan penggunaan objek database.
+ [Oracle SQL Developer](https://www.oracle.com/in/database/technologies/appdev/sqldeveloper-landing.html) adalah lingkungan pengembangan terintegrasi gratis yang menyederhanakan pengembangan dan pengelolaan Oracle Database baik dalam penerapan tradisional maupun cloud.

## Epik
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-epics"></a>

### Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-your-amazon-aurora-postgresql-compatible-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel di database Amazon Aurora PostgreSQL yang kompatibel. | Jalankan perintah [PostgreSQL CREATE TABLE](https://www.postgresql.org/docs/current/sql-createtable.html) berikut:<pre>(<br /><br />    source_error_code numeric NOT NULL,<br /><br />    target_error_code character varying NOT NULL,<br /><br />    valid_error character varying(1) NOT NULL<br /><br />); </pre> | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 
| Tambahkan kode kesalahan PostgreSQL dan kode kesalahan Oracle Database yang sesuai ke tabel. | **Jalankan perintah [PostgreSQL](https://www.postgresql.org/docs/current/sql-insert.html) INSERT untuk menambahkan nilai kode kesalahan yang diperlukan ke tabel error\_codes.**<br />**Kode kesalahan PostgreSQL harus menggunakan karakter yang bervariasi tipe data (nilai SQLSTATE).** Kode kesalahan Oracle harus menggunakan tipe data numerik (nilai **SQLCODE**).<br />**Contoh Sisipkan pernyataan:**<pre>insert into error_codes values (-1817,'22007','Y');<br />insert into error_codes values (-1816,'22007','Y');<br />insert into error_codes values (-3114,'08006','N');</pre>Jika Anda menangkap pengecualian konektivitas basis data Java (JDBC) khusus Oracle, Anda harus mengganti pengecualian tersebut dengan pengecualian lintas basis data generik atau beralih ke pengecualian khusus PostgreSQL. | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 
| Buat PL/pgSQL fungsi untuk memvalidasi kode kesalahan. | Buat PL/pgSQL fungsi dengan menjalankan perintah [PostgreSQL](https://www.postgresql.org/docs/current/sql-createfunction.html) CREATE FUNCTION. Pastikan bahwa fungsi melakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.html) | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 
| Tinjau kode kesalahan baru secara manual saat direkam oleh PL/pgSQL fungsi. | Tinjau kode kesalahan baru secara manual.<br />**Jika kode kesalahan baru valid untuk kasus penggunaan Anda, tambahkan ke tabel **error\_codes** dengan menjalankan perintah PostgreSQL INSERT.**<br />-atau-<br />Jika kode kesalahan baru tidak valid untuk kasus penggunaan Anda, jangan tambahkan ke tabel. Logika proses akan terus gagal dan keluar dengan pengecualian ketika kesalahan terjadi. | Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora  | 

## Sumber daya terkait
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-resources"></a>

[Lampiran A. PostgreSQL Kode Kesalahan (dokumentasi PostgreSQL](https://www.postgresql.org/docs/11/errcodes-appendix.html))

[Pesan kesalahan database](https://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm) (dokumentasi Oracle Database)