sql >> Base de Datos >  >> RDS >> Oracle

Manejar las excepciones de ORACLE

Las excepciones PL/SQL predefinidas son especiales a Oráculo. Realmente no puedes meterte con eso. Cuando desee tener un conjunto de excepciones predefinidas propias, no puede declararlas "globalmente" como las estándar. En su lugar, cree una excepciones paquete que tiene todas las declaraciones de excepción y utilícelo en su aplicación código.

Ejemplo:

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

Ahora usa la excepción definida en el paquete

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

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