Untuk mengatasi masalah yang terkait dengan pendekatan kedua dalam pertanyaan Anda, Anda perlu menggunakan
variabel kursor dan cara eksplisit membuka kursor dan mengambil data. Bukan
diizinkan untuk menggunakan variabel kursor di FOR
lingkaran:
declare
l_sql varchar2(123); -- variable that contains a query
l_c sys_refcursor; -- cursor variable(weak cursor).
l_res your_table%rowtype; -- variable containing fetching data
begin
l_sql := 'select * from your_table';
-- Open the cursor and fetching data explicitly
-- in the LOOP.
open l_c for l_sql;
loop
fetch l_c into l_res;
exit when l_c%notfound; -- Exit the loop if there is nothing to fetch.
-- process fetched data
end loop;
close l_c; -- close the cursor
end;