Oracle
 sql >> база данни >  >> RDS >> Oracle

Обработка на ORACLE изключения

Предварително дефинираните PL/SQL изключения са специални към Oracle. Наистина не можете да се забърквате с тях. Когато искате да имате собствен набор от предварително дефинирани изключения, не можете да ги декларирате "глобално" като стандартните. Вместо това създайте изключения пакет, който има всички декларации за изключения и го използвайте във вашето приложение код.

Пример:

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

Сега използвайте изключението, дефинирано в пакета

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

Източник:http://www.orafaq.com/wiki/Exception



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуване на байтов масив от Oracle RAW в System.Guid?

  2. Конвертирайте LONG във varchar в Oracle

  3. Разлика между литералите N'String' и U'String в Oracle

  4. Извличане на огромни данни от Oracle в Python

  5. Последователност на Oracle, започваща с 2 вместо с 1