私は解決策を見つけられない状況で立ち往生しています。PL/SQLコードを示します。
begin
outer_loop_counter := 0;
inner_loop_counter := 0;
-- Open first cursor
open get_vacancy;
--<<Outer_loop>>
loop
fetch get_vacancy
into v_category, v_gender, v_vacancy_count;
exit when get_vacancy%NOTFOUND;
open get_candidate;
--<<Inner_loop>>
for inner_loop_counter in 1 .. v_vacancy_count
loop
fetch get_candidate
into c_rollno, c_category,c_gender,c_total_marks;
update merit_list m set m.merit_position = inner_loop_counter;
end loop; --Inner_loop;
close get_candidate;
end loop; --Outer_loop;
close get_vacancy;
end;
上記のコードは、JavaとOracleを使用して開発している大学の入学願書のメリットリストを作成するためのものです。現在、ポリシーは各行フェッチからの空室の数に依存しており、候補者にはメリットランクが割り当てられます。上記のコードの問題は、get_vacancyカーソルからのフェッチごとに、内側のループカーソルが結果セットの先頭からレコードをフェッチしていることです。前回のフェッチでメリットランクが割り当てられた候補は、カーソルがget_vacancyカーソルで移動したときに、次のフェッチに表示されないようにします。私は何をすべきか?