sql >> Database >  >> RDS >> Oracle

ORACLE-uitzonderingen afhandelen

De vooraf gedefinieerde PL/SQL-uitzonderingen zijn speciaal naar Orakel. Daar kun je echt niet mee rommelen. Als u zelf een reeks vooraf gedefinieerde uitzonderingen wilt hebben, kunt u ze niet "wereldwijd" declareren zoals de standaarduitzonderingen. Maak in plaats daarvan een uitzonderingen pakket met alle uitzonderingsverklaringen en gebruik dat in uw toepassing code.

Voorbeeld:

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

Gebruik nu de uitzondering gedefinieerd in het pakket

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

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



  1. Syntaxis alle opgeslagen procedures controleren?

  2. MySQL in outfile-opmaak

  3. Maak een veld aan met standaard als epochetijd

  4. Verbinding maken met de standaardinstantie van SQL Server en met SQL Server benoemde instanties - SQL Server / TSQL-zelfstudie, deel 2