Не уверен, где вы делаете свои коммиты, но на основе существующего кода все, что вам нужно сделать, это ВЫБРАТЬ ... ИЗ ПУНКТА, ГДЕ СОСТОЯНИЕ СТАТУСА = 'начал'
Если это маленькие цифрыВы можете сохранить коллекцию ROWID.если он больше, то я бы сделал
INSERT into a global temporary table SELECT id FROM item .. AND ROWNUM < n;
UPDATE item SET status = .. WHERE id in (SELECT id FROM global_temp_table);
, а затем вернул бы курсор
SELECT ... FROM item WHERE id in (SELECT id FROM global_temp_table);