Должен ли быть выполнен откат до появления ошибки приложения? - PullRequest
0 голосов
/ 24 октября 2019

Это часть моей процедуры. Откат не произошел, когда процедура не удалась. 1. Должен ли быть выполнен откат до возникновения ошибки приложения? 2. В этом случае будет возвращена работа с повышением ошибки приложения. Отслеживается в журнальной таблице. Тем не менее, вы хотите знать, правильно ли выдаст ошибку приложения повышение, если выполняется откат.

EXCEPTION
 WHEN OTHERS THEN
    /*Log that some other error occured and backtrace*/
    eps_datareduction_run_log ( 5, 'CREDIT', current_timestamp,  'FAILED', 'CREDIT: Error Number:'||sqlcode||'Error Code:'||substr(sqlerrm, 1, 200)||'-backtrace:'||dbms_utility.format_error_backtrace, sysdate, user, null, null );
    lv_err_msg := 'Unexcpected Error '||SUBSTR(sqlerrm,1,255);
    raise_application_error(-20000,lv_err_msg || '- backtrace - ' || dbms_utility.format_error_backtrace);
    ROLLBACK;

Ответы [ 2 ]

1 голос
/ 24 октября 2019
Сначала следует ввести

Rollback, затем выполнить все логические операции, которые вы хотите выполнить в таблицах журнала, а затем Raise. Raise является разновидностью конечной части программы, которая технически сообщает пользователю, что эта конкретная ошибка произошла и программа завершилась.

Надеюсь, это поможет вам.

0 голосов
/ 24 октября 2019

Посмотрите, есть ли COMMIT внутри eps_datareduction_run_log? Это может быть причиной того, что откат не произошел. По-прежнему рекомендуется откатываться перед любыми другими действиями в обработчике исключений и использовать прагму aut auton_transaction в подпрограммах ведения журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...