declare
  str varchar2(2000);
begin
  str:='一段sql';
  execute immediate str;
end;

解决方案 »

  1.   

    对,定义一个str varchar2(4000),估计够你使
      

  2.   

    一般来说总是够用的,你的SQL语句那么长啊?
      

  3.   

    SQL语句没有限定长度,只不过是受系统限制影响:
      

  4.   

    length〉1540,这么长的字符串!执行起来应该不会快!特别是数据量很大时!你最好分解一下你的SQL!
      

  5.   

    我想,你可能永远不可能写一个有实际用途的长度超出范围的sql语句,除非你是恶意的进行测试!
      

  6.   

    对这个问题,阿是这么理解的:如果在PL/SQL中泥定义了一个VARCHAR2的变量来生成动态SQL来执行的话,那么这个动态SQL的长度限制就是VARCHAR2的限制,就是4000个字符;如果泥直接执行“execute immediate ‘动态SQL’”的话应该是没什么长度限制的~