PRAGMA AUTONOMOUS_TRANSACTION

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

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

1 ответ

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

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

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

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

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

Другие вопросы по тегам