Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách tìm số dòng, tên thủ tục trong PL / SQL trong trường hợp xảy ra lỗi

Tôi đã bắt gặp mô hình này sau nhiều nghiên cứu, đập đầu và nghiến răng:

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 dường như hàm cung cấp mã lỗi và thông báo và DBMS_UTILITY.FORMAT_ERROR_BACKTRACE dường như cung cấp dấu vết ngăn xếp trung thực đến tốt đẹp, hoàn chỉnh với số dòng và tên thủ tục được lưu trữ trong Oracle 10g ít nhất.

Tôi không chắc liệu những chức năng đó có sẵn trong Oracle 9i hay không. Tôi không thể tìm thấy nhiều thông tin về vấn đề này ngay cả đối với Oracle 10g, vì vậy tôi nghĩ ít nhất tôi sẽ đăng câu trả lời này vì 9i đã khá cũ (và vì vậy nó là 10g cho vấn đề đó).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chuỗi con trong oracle

  2. Truy cập Oracle Apex từ máy từ xa

  3. hỗ trợ nhiều cơ sở dữ liệu cho cùng một classs JPA

  4. Nhiều bộ kết quả với Oracle

  5. OracleBulkCopy Memory Leak (OutOfMemory Exception)