Oracle EXECUTE IMMEDIATE到游标中

Ank*_*kit 7 sql oracle stored-procedures dynamic-sql sys-refcursor

我有一个存储过程,它使用该EXECUTE IMMEDIATE命令执行一个非常长的字符串.如何支持非常长的字符串并将数据返回到refcursor中?

All*_*lan 16

假设您的SQL不超过32K(正如@Tony安德鲁斯暗示的那样),您应该可以使用以下内容:

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

使用Ref Cursors时,open-for可以直接使用,而不是execute immediate.