क्या आपको वास्तव में स्पष्ट कर्सर की आवश्यकता है? यदि आपको गतिशील SQL पर पुनरावृति की आवश्यकता है, तो आप FOR IN EXECUTE
. का उपयोग कर सकते हैं . यह गतिशील SQL के लिए अंतर्निहित (आंतरिक) कर्सर पर लूप है
FOR db_rec IN EXECUTE v_sql_dynamic
LOOP
..
END LOOP
थोड़ा अधिक जटिल समाधान दस्तावेज़ीकरण
में वर्णित है - OPEN FOR EXECUTE
:
do $$
declare r refcursor; rec record;
begin
open r for execute 'select * from pg_class';
fetch next from r into rec;
while found
loop
raise notice '%', rec;
fetch next from r into rec;
end loop;
close r;
end $$;
इस प्रकार के कर्सर के साथ, आप FOR IN
. का उपयोग नहीं कर सकते हैं