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

Cara mengetahui nomor baris, nama prosedur di PL/SQL jika terjadi kesalahan

Saya menemukan pola ini setelah banyak penelitian, membenturkan kepala dan menggertakkan gigi:

CREATE OR REPLACE PACKAGE BODY my_schema.package_name
IS

  PROCEDURE foo
  IS
  BEGIN
    -- Call stored procedures/functions that throw unhandled exceptions
  EXCEPTION
    WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE('ERROR! - '
        || DBMS_UTILITY.FORMAT_ERROR_STACK
        || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
  END foo;

END;

DBMS_UTILITY.FORMAT_ERROR_STACK fungsi tampaknya memberikan kode dan pesan kesalahan, dan DBMS_UTILITY.FORMAT_ERROR_BACKTRACE tampaknya memberikan jejak tumpukan yang jujur, lengkap dengan nomor baris dan nama prosedur tersimpan di Oracle 10g setidaknya.

Saya tidak yakin apakah fungsi-fungsi itu tersedia di Oracle 9i. Saya tidak dapat menemukan banyak informasi tentang hal semacam ini bahkan untuk Oracle 10g, jadi saya pikir saya setidaknya akan memposting jawaban ini karena 9i sudah cukup tua (dan jadi 10g dalam hal ini).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengulang kolom dengan PL/SQL

  2. Cara memecahkan masalah ORA-02049 dan mengunci masalah secara umum dengan Oracle

  3. Bagaimana Memuat File JAR di Oracle Database?

  4. Oracle:Berikan Buat tabel di skema lain?

  5. Mengakses parameter URL di Oracle Forms / OC4J