Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Penanganan pengecualian dalam Prosedur dengan fungsi bersarang di pl/sql

RAISE_APPLICATION_ERROR prosedur memiliki parameter ketiga yang mengontrol apakah pengecualian menggantikan tumpukan pengecualian saat ini (perilaku default) atau menambahkannya.

Jadi jika Anda memberikannya TRUE itu akan menampilkan kedua pesan; dalam panggilan dari prosedur Anda:

...
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (-20101, 'Problem in loading Affected Circle data',
  TRUE);
END;

memberi Anda output:

BEGIN
*
ERROR at line 1:
ORA-20101: Problem in loading Affected Circle data
ORA-06512: at "SRUSER.ADD_AFFECTEDCIRCLE", line 13
ORA-20102: Circle Code is wrong or not available
ORA-06512: at line 2

Untuk hanya menampilkan pesan dan bukan informasi tumpukan lainnya, Anda perlu memanipulasi tumpukan. Artikel ini menyentuh tentang cara menggunakan format_error_backtrace untuk mengekstrak informasi yang Anda minati, tetapi sayangnya tautan ke BT paket mati. Beberapa alasan yang sama dicakup di sini . Pada dasarnya Anda perlu mengurai string pengecualian menjadi baris, dan hanya menampilkan yang dimulai dengan ORA-20% , saya pikir.

Tetapi berhati-hatilah agar tidak kehilangan informasi yang mungkin sebenarnya sangat penting. Secara khusus saya sarankan Anda hanya menjebak kesalahan tertentu yang Anda cari, bukan OTHERS - biarkan saja sehingga Anda dapat menangani kesalahan tak terduga dan tidak menyembunyikan sesuatu yang penting.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01792:jumlah maksimum kolom dalam tabel atau tampilan adalah 1000 kesalahan saat menggunakan WITH di sql

  2. Bagaimana cara menulis kerangka data panda ke database Oracle menggunakan to_sql?

  3. Kesalahan SQL Loader:Bidang panjang variabel melebihi panjang maksimum.

  4. Oracle dbms_job.submit:Mencampur Sinkron dan Asinkron

  5. Buat pemicu di Oracle dari pengguna yang mendengarkan acara untuk pengguna lain