【问题标题】:Oracle EXECUTE IMMEDIATE into a cursorOracle EXECUTE IMMEDIATE 进入游标
【发布时间】:2011-06-10 11:50:39
【问题描述】:

我有一个存储过程,它使用EXECUTE IMMEDIATE 命令来执行一个很长的字符串。如何支持很长的字符串并将数据返回到引用器中?

【问题讨论】:

  • “很长”有多长?超过 32K?

标签: sql oracle stored-procedures dynamic-sql sys-refcursor


【解决方案1】:

假设你的 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;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 2011-02-16
    相关资源
    最近更新 更多