У меня есть блок PL/SQL, он запрашивает из функции таблицы, и я использую курсор для его обработки запись за записью, имею некоторую бизнес-логику и, наконец, записываю квалифицированные записи в файл.
Количество обрабатываемых записей — до 1 миллиона. А общая скорость обработки составляет примерно 10000 записей в минуту (после тестирования с несколькими фрагментами данных).
Теперь, когда мне нужно указать статус обработки в другой среде, JSP.
DECLARE
vSFile utl_file.file_type;
vNewLine VARCHAR2(200);
my_cursor IS SELECT * FROM MYTABLE;
my_details my_cursor%rowtype;
BEGIN
vSFile := utl_file.fopen('ORALOAD', file_name,'r');
IF utl_file.is_open(vSFile) THEN
utl_file.get_line(vSFile, vNewLine);
OPEN my_cursor;
LOOP
FETCH my_cursor INTO my_details;
EXIT WHEN sll_cur%NOTFOUND;
-- Do processing
utl_file.putf(logfile,'%s ',my_details);
-- A info tht record completed!
END LOOP;
CLOSE logfile;
CLOSE my_cursor;
END IF;
EXCEPTION
WHEN OTHERS THEN
--Error handling
END;
/
Информация журнала, записанная здесь, недоступна до завершения процесса. Таким образом, я не могу отслеживать, насколько это завершено. Может ли кто-нибудь помочь мне в этом?