Предварително дефинираните PL/SQL изключения са специални към Oracle. Наистина не можете да се забърквате с тях. Когато искате да имате собствен набор от предварително дефинирани изключения, не можете да ги декларирате "глобално" като стандартните. Вместо това създайте изключения пакет, който има всички декларации за изключения и го използвайте във вашето приложение код.
Пример:
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;
/
Сега използвайте изключението, дефинирано в пакета
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;
/
Източник:http://www.orafaq.com/wiki/Exception