O2SS0055: Salah EXCEPTION_INIT parameter PRAGMA (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 lain yang dapat diantisipasi seseorang. Setelah mengetahui kode kesalahan, Anda dapat menggunakannya dengan PRAGMA EXCEPTION_INIT dan menulis handler khusus untuk kesalahan tersebut.

Setiap kali Anda mencoba mengonversi kode PL/SQL yang memiliki PRAGMA EXCEPTION_INIT pengecualian tanpa menentukan nomor kesalahan di bagian parameternya, SSMA menghasilkan pesan kesalahan karena tidak menemukan literal numerik. Wajib untuk meneruskan angka negatif (yaitu nomor kesalahan yang ingin Anda lemparkan pengecualian ini) di bagian parameter.

Contoh

Pertimbangkan contoh berikut:

DECLARE
    MYEXCEPTION EXCEPTION;
    PRAGMA EXCEPTION_INIT(MYEXCEPTION, '');
BEGIN
    NULL;
END;

Ketika Anda mencoba mengonversi kode di atas dalam SSMA, kode tersebut tidak menemukan harfiah numerik di bagian parameter PRAGMA EXCEPTION_INIT dan karenanya menghasilkan pesan kesalahan berikut:

O2SS0055: Parameter PRAGMA EXCEPTION_INIT salah

Kemungkinan solusi

Remediasi kesalahan ini adalah menentukan nomor kesalahan yang ingin Anda lemparkan pengecualian ini. Untuk ini, perbarui kode sebagai berikut:

DECLARE
    MYEXCEPTION EXCEPTION;
    PRAGMA EXCEPTION_INIT(MYEXCEPTION, -10000);
BEGIN
    NULL;
END;