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

Cách hiệu quả để theo dõi, xác định và báo cáo mọi 'thông báo lỗi' do ứng dụng của bạn đưa ra là gì?

Đối với các lỗi do ứng dụng của bạn đưa ra, giải pháp phổ biến là có một bảng thông báo lỗi như sau:

create table errors
    ( error_no integer primary key
    , error_text varchar2(200)
    , error_cause varchar2(4000)
    , error_action varchar2(4000)
    );

Mục nhập điển hình có thể là:

insert into errors (error_no, error_text, error_cause, error_action)
values (479, 'End date cannot be earlier than start date',
        'A start date and an end date were entered where the end date was before the start date, which is not allowed.',
        'Correct the start and end dates and retry.'
       );

Sau đó, trong mã của bạn xử lý các ngoại lệ như sau:

if p_start_date > p_end_date then
    error_pkg.raise_error (479);
end if;

Gói này sẽ hoạt động như sau:

procedure raise_error (p_error_no integer)
is
    l_text errors.error_text%type;
begin
    select error_text into l_text
    from   errors
    where  error_no = p_error_no;
    raise_application_error(-20001, l_text);
end;

Người dùng cuối sẽ thấy một cái gì đó giống như:

ERROR 479: End date cannot be earlier than start date

Sau đó, điều này có thể được tra cứu để biết nguyên nhân và chi tiết hành động.

Phiên bản nâng cao hơn sẽ cho phép các giá trị dữ liệu được hiển thị trong thông báo, sử dụng trình giữ chỗ trong văn bản lỗi như sau:

insert into errors (error_no, error_text, error_cause, error_action)
values (456, 'Invalid action code: [1]',
        'An invalid action was specified', 'Correct the action code and retry.'
       );

error_pkg.raise_error (456, p_act_code);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NHibernate Oracle - Không thể tải DLL 'OraOps10w.dll'

  2. Tạo Bảng tính Excel từ Cơ sở dữ liệu Oracle

  3. Độ dài cột ưu tiên của Oracle

  4. Mục đích của việc sử dụng các loại tập hợp PL / SQL khác nhau trong Oracle

  5. Đã tìm thấy một biểu tượng sơ đồ quan hệ không xác định trong Oracle SQL Developer