В вашем примере, когда вы вставляете одну строку за раз (insert into ... values ...
), SQL%ROWCOUNT
устанавливается в 1 на каждой итерации.
Следовательно, в этом контексте это в значительной степени бесполезно. Создайте локальную переменную и увеличивайте ее каждый раз (аналогично тому, что вы делаете с v_counter
), например,
declare
l_cnt number := 0;
begin
loop
insert ...
l_cnt := l_cnt + sql%rowcount;
end loop;
dbms_output.put_line('Number of inserted rows = ' || l_cnt);
end;