O2SS0054: Tidak dapat mengonversi EXCEPTION_INIT (Kesalahan)
Artikel ini membahas alasan mengapa Asisten Migrasi SQL Server (SSMA) untuk Oracle tidak dapat mengonversi EXCEPTION_INIT
.
Background
Penanganan pengecualian adalah konstruksi atau mekanisme bahasa pemrograman yang dirancang untuk menangani terjadinya pengecualian, kondisi khusus yang mengubah alur normal eksekusi program. Seseorang dapat menggunakan PRAGMA EXCEPTION_INIT
untuk mengaitkan nama pengecualian dengan kode kesalahan Oracle lainnya yang dapat diantisipasi.
Setiap kali Anda mencoba mengonversi kode PL/SQL yang memiliki EXCEPTION_INIT
klausul dengan nama pengecualian yang ditentukan pengguna di dalamnya, SSMA tidak dapat dikonversi EXCEPTION_INIT
karena tidak menemukan pengecualian dengan nama yang sama di bagian parameter.
Contoh
Pertimbangkan contoh berikut:
DECLARE
MYEXCEPTION EXCEPTION;
PRAGMA EXCEPTION_INIT(MYEXCEPTION_1, -20000);
BEGIN
NULL;
END;
Catatan
Ini adalah contoh kode buruk Oracle, karena Oracle juga menghasilkan pesan kesalahan ketika Anda mencoba menjalankan kode ini.
Ketika Anda mencoba mengonversi kode di atas di SSMA, kode tersebut tidak mengidentifikasi pengecualian MYEXCEPTION_1
yang ditentukan pengguna dan karenanya menghasilkan pesan kesalahan berikut:
O2SS0054: Tidak dapat mengonversi EXCEPTION_INIT
Kemungkinan perbaikan
Remediasi kesalahan ini adalah menggunakan nama yang sama saat mendeklarasikan dan mendefinisikan pengecualian. Untuk ini, perbarui kode sebagai berikut:
DECLARE
MYEXCEPTION EXCEPTION;
PRAGMA EXCEPTION_INIT(MYEXCEPTION, -20000);
BEGIN
NULL;
END;
Pesan konversi terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk