Обработка исключения, когда пользователь отменяет процедуру ORA-01013

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

Есть идеи, как подсчитать количество записей, обработанных до отмены процедуры? Я мог бы попытаться увеличить запись каждый раз, когда происходит commit, но мне было интересно, есть ли лучший способ добиться этого

5
задан Justin Cave 14 March 2012 в 16:39
поделиться