Migrasikan kode kesalahan Oracle Database ke database yang kompatibel dengan Amazon Aurora PostgreSQL - AWS Prescriptive Guidance

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

Sai Parthasaradhi dan Veeranjaneyulu Grandhi, Amazon Web Services

Ringkasan

Pola ini menunjukkan cara memigrasikan kode kesalahan Oracle Database ke database Amazon Aurora PostgreSQL Compatible 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

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

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.

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.

  2. Ketika sebuah PL/pgSQL fungsi (func_processdata) melempar pengecualian, ia memanggil fungsi kedua PL/pgSQL (error_validation).

  3. 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.

  4. 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.

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

  6. 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

  • Amazon Aurora PostgreSQL Compatible Edition adalah mesin database relasional yang dikelola sepenuhnya dan sesuai dengan ACID yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL.

  • pgAdmin adalah alat administrasi dan pengembangan sumber terbuka untuk PostgreSQL. Ini menyediakan antarmuka grafis yang menyederhanakan pembuatan, pemeliharaan, dan penggunaan objek database.

  • Oracle SQL Developer adalah lingkungan pengembangan terintegrasi gratis yang menyederhanakan pengembangan dan pengelolaan Oracle Database baik dalam penerapan tradisional maupun cloud.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat tabel di database Amazon Aurora PostgreSQL yang kompatibel.

Jalankan perintah PostgreSQL CREATE TABLE berikut:

( source_error_code numeric NOT NULL, target_error_code character varying NOT NULL, valid_error character varying(1) NOT NULL );
Pengembang PostgreSQL, Oracle, untuk PostgreSQL RDS/Aurora

Tambahkan kode kesalahan PostgreSQL dan kode kesalahan Oracle Database yang sesuai ke tabel.

Jalankan perintah PostgreSQL INSERT untuk menambahkan nilai kode kesalahan yang diperlukan ke tabel error_codes.

Kode kesalahan PostgreSQL harus menggunakan karakter yang bervariasi tipe data (nilai SQLSTATE). Kode kesalahan Oracle harus menggunakan tipe data numerik (nilai SQLCODE).

Contoh Sisipkan pernyataan:

insert into error_codes values (-1817,'22007','Y'); insert into error_codes values (-1816,'22007','Y'); insert into error_codes values (-3114,'08006','N');
catatan

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 CREATE FUNCTION. Pastikan bahwa fungsi melakukan hal berikut:

  • Menerima kode kesalahan Oracle yang dilemparkan oleh sebuah program.

  • Memeriksa apakah kode kesalahan hadir dalam tabel error_codes.

  • Mengembalikan nilai TRUE atau FALSE, berdasarkan jika kode kesalahan hadir dalam tabel metadata atau tidak.

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.

Jika kode kesalahan baru valid untuk kasus penggunaan Anda, tambahkan ke tabel error_codes dengan menjalankan perintah PostgreSQL INSERT.

-atau-

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

Lampiran A. PostgreSQL Kode Kesalahan (dokumentasi PostgreSQL)

Pesan kesalahan database (dokumentasi Oracle Database)