Để giải quyết các vấn đề liên quan đến cách tiếp cận thứ hai trong câu hỏi của bạn, bạn cần sử dụng
biến con trỏ và cách rõ ràng để mở con trỏ và tìm nạp dữ liệu. Nó không phải là
được phép sử dụng các biến con trỏ trong FOR
vòng lặp:
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;