У нас есть процедура, которая обрабатывает много записей в базе данных. Теперь иногда, если процедура занимает слишком много времени пользователь отменяет процедуру вручную, выдавая ИСКЛЮЧЕНИЕ ORA-01013. Однако мы все равно хотели бы знать, сколько записей было обработано перед отменой процедуры.
Мы попытались создать журнал, который вызывался в блоке EXCEPTION WHEN OTHERS
, но какой-либо код в этом блоке не работает. Мы даже пытались создать ИСКЛЮЧЕНИЕ с помощью PRAGMA INIT EXCEPTION
для ORA-01013, но безрезультатно. Код, кажется, достигает исключения, но не выполняет в нем никакого кода. Я предполагаю, что поскольку процедура отменена, код в блоке EXCEPTION ничего не успевает сделать и просто закрывается.
Есть идеи, как подсчитать количество записей, обработанных до отмены процедуры? Я мог бы попытаться увеличить запись каждый раз, когда происходит commit
, но мне было интересно, есть ли лучший способ добиться этого