Основы языка PL/SQL. Гаршина В.В - 29 стр.

UptoLike

Составители: 

29
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(
TO_CHAR(v_product_id)
||’ is invalid.’);
WHEN TOO_MANY_ROWS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(
‘Data corruption!’);
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(‘Other error
occured.’);
END;
Для перехвата непредопределенного исключения необходимо объя-
вить его в декларативной секции блока. После этого объявленное исклю-
чение будет возбуждаться неявно. Синтаксис объявления исключения в
декларативной секции:
except EXCEPTION;
где except – имя исключения. Связывание объявленного исключения со стан-
дартным номером
ошибки Oracle осуществляется следующим образом:
PRAGMA EXCEPTION_INIT (except, err_num);
где except – имя исключения, err_num – номер ошибки сервера Oracle.
Для перехвата пользовательского исключения необходимо сначала
объявить его, а затем возбудить явно. Синтаксис объявления пользователь-
ского исключения аналогичен синтаксису объявления непредопределенного
исключения. Возбуждение исключения осуществляется с помощью пред-
ложения RAISE:
RAISE except;
где except – имя исключения.
          ROLLBACK;
          DBMS_OUTPUT.PUT_LINE(
                         TO_CHAR(v_product_id)
                         ||’ is invalid.’);
        WHEN TOO_MANY_ROWS THEN
          ROLLBACK;
          DBMS_OUTPUT.PUT_LINE(
                         ‘Data corruption!’);
        WHEN OTHERS THEN
          ROLLBACK;
          DBMS_OUTPUT.PUT_LINE(‘Other error
                                occured.’);
     END;

      Для перехвата непредопределенного исключения необходимо объя-
вить его в декларативной секции блока. После этого объявленное исклю-
чение будет возбуждаться неявно. Синтаксис объявления исключения в
декларативной секции:

     except EXCEPTION;

где except – имя исключения. Связывание объявленного исключения со стан-
дартным номером ошибки Oracle осуществляется следующим образом:

     PRAGMA EXCEPTION_INIT (except, err_num);

где except – имя исключения, err_num – номер ошибки сервера Oracle.
      Для перехвата пользовательского исключения необходимо сначала
объявить его, а затем возбудить явно. Синтаксис объявления пользователь-
ского исключения аналогичен синтаксису объявления непредопределенного
исключения. Возбуждение исключения осуществляется с помощью пред-
ложения RAISE:

     RAISE except;

где except – имя исключения.

                                     29