我有一个存储过程,它使用EXECUTE IMMEDIATE
命令执行一个很长的字符串。如何支持非常长的字符串并将数据返回到refcursor中?
答案 0 :(得分:15)
假设您的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;
使用Ref Cursors时,open-for
可以直接使用,而不是execute immediate
。