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 не жалуется, процедура ничего не делает, и вы понятия не имеете, что происходит.
Поэтому вам лучше убедиться, что эта процедура "регистрации" не завершится неудачей.