Ако приемем, че вашият SQL не е по-дълъг от 32K (както намекна @Tony Andrews), трябва да можете да използвате нещо подобно:
declare
SQL_Text varchar2(32760) := 'select * from dual'; --your query goes here
cur sys_refcursor;
begin
open cur for SQL_Text;
end;
Когато работите с референтни курсори, open-for
може да се използва директно, вместо execute immediate
.