Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Lidar com Exceções ORACLE


As exceções PL/SQL predefinidas são especiais ao Oráculo. Você realmente não pode mexer com aqueles. Quando você deseja ter um conjunto de exceções predefinidas próprias, não pode declará-las "globalmente" como as padrão. Em vez disso, crie uma exceções pacote que tem todas as declarações de exceção e use isso em seu aplicativo código.

Exemplo:
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;
/

Agora use a exceção definida no pacote
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;
/

Fonte:http://www.orafaq.com/wiki/Exception