Oracle EXECUTE IMMEDIATE into a cursor
Asked Answered
F

1

11

I have a stored procedure which used the EXECUTE IMMEDIATE command to execute a very long string. How do I support a very long string and return the data into a refcursor?

Frecklefaced answered 17/1, 2011 at 14:17 Comment(1)
How long is "very long"? More than 32K?Mew
C
20

Assuming that your SQL is not longer than 32K (as @Tony Andrews hinted at), you should be able to use something like this:

declare
   SQL_Text varchar2(32760) := 'select * from dual'; --your query goes here
   cur sys_refcursor;
begin
   open cur for SQL_Text;
end;

When working with Ref Cursors, open-for can be used directly, instead of execute immediate.

Crab answered 18/1, 2011 at 22:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.