PRAGMA AUTONOMOUS_TRANSACTION - PullRequest
       36

PRAGMA AUTONOMOUS_TRANSACTION

0 голосов
/ 25 февраля 2019

У меня есть процедура A с PRAGMA AUTONOMOUS_TRANSACTION для регистрации активности основной программы.

Теперь я вызываю эту программу A в процедуре B для регистрации процесса активности в программе B. Если какая-либо ошибка возникает вПрограмма А также не работает с программой В.Как мне избежать сбоя основной программы B.

1 Ответ

0 голосов
/ 25 февраля 2019

Что делает эта процедура регистрации, чтобы она могла потерпеть неудачу?Разве это не чистый INSERT + COMMIT?

В любом случае: самый простой (и, вероятно, худший) вариант - использовать секцию обработчика исключений, например,

your_procedure is
begin
  do something;
exception
  when others then null;
end;

Это было быХорошо, если вам действительно все равно, произошло ли что-то плохо или нет, но - тогда какова цель?Вы думаете, что что-то сделали, Oracle не жалуется, процедура ничего не делает, и вы понятия не имеете, что происходит.

Поэтому вам лучше убедиться, что эта процедура «регистрации» не завершится неудачей.

...