Oracle
 sql >> Database >  >> RDS >> Oracle

Gestisci le eccezioni di ORACLE

Le eccezioni PL/SQL predefinite sono speciali a Oracle. Non puoi davvero pasticciare con quelli. Quando vuoi avere un insieme di eccezioni predefinite non puoi dichiararle "globalmente" come quelle standard. Invece, crea un eccezioni pacchetto che contiene tutte le dichiarazioni di eccezione e utilizzarlo nella tua applicazione codice.

Esempio:

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

Ora usa l'eccezione definita nel pacchetto

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