Các ngoại lệ PL / SQL được xác định trước là đặc biệt cho Oracle. Bạn thực sự không thể lộn xộn với những thứ đó. Khi bạn muốn có một tập hợp các ngoại lệ được xác định trước của riêng mình, bạn không thể khai báo chúng "toàn cầu" như các ngoại lệ tiêu chuẩn. Thay vào đó, hãy tạo một ngoại lệ gói có tất cả các khai báo ngoại lệ và sử dụng nó trong ứng dụng của bạn mã.
Ví dụ:
CREATE OR REPLACE PACKAGE my_exceptions
AS
insert_null_into_notnull EXCEPTION;
PRAGMA EXCEPTION_INIT(insert_null_into_notnull, -1400);
update_null_to_notnull EXCEPTION;
PRAGMA EXCEPTION_INIT(update_null_to_notnull, -1407);
END my_exceptions;
/
Bây giờ hãy sử dụng ngoại lệ được xác định trong gói
CREATE OR REPLACE PROCEDURE use_an_exception AS
BEGIN
-- application specific code ...
NULL;
EXCEPTION
WHEN my_exceptions.insert_null_into_notnull THEN
-- application specific handling for ORA-01400: cannot insert NULL into (%s)
RAISE;
END;
/
Nguồn: http://www.orafaq.com/wiki/Exception