sql >> Databasteknik >  >> RDS >> Oracle

Hantera ORACLE-undantag

De fördefinierade PL/SQL-undantagen är speciella till Oracle. Du kan verkligen inte bråka med dem. När du vill ha en uppsättning egna fördefinierade undantag kan du inte deklarera dem "globalt" som de vanliga. Skapa istället ett undantag paket som har alla undantagsdeklarationer och använd det i din applikation kod.

Exempel:

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

Använd nu undantaget som definierats i paketet

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

Källa:http://www.orafaq.com/wiki/Exception



  1. Konverteringen misslyckades vid konvertering av datum och/eller tid från teckensträng när datum och tid infogades

  2. Ändra en MySQL-fråga som tar bort dubbletter

  3. Hur man fixar ORA-12505, TNS:listener känner för närvarande inte till SID som ges i anslutningsbeskrivningen

  4. Påverkar antalet kolumner MYSQL-hastigheten?