定义每个组的SQL长度为4000,为何只能用1000呢?v_SQLgroupunion VARCHAR2(4000); --组合每个组的SQL
TYPE SQLgroup_type IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
v_SQLgroupArray SQLgroup_type;v_SQLgroupunion := v_SQLgroupArray(1)|| ' UNION ' || v_SQLgroupArray(2);
如果v_SQLgroupunion长度超过1000就会提示下面的错误。
undeclared identifier 'v_SQLgroupunion'谁能告诉我,哪里错了?听说VARCHAR2可以到32K呀?

解决方案 »

  1.   

    不会啊,9201下32K可以的。查查是不是你版本的Bug?
      

  2.   

    单拿出来1000确实可以 如 : v_filename  varchar2(3000);TYPE SQLgroup_type IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER;
    这里类型只能1000
      

  3.   

    数组v_SQLgroupArray的每一项值我没有超过1000。
      

  4.   

    v_SQL VARCHAR2(4000):='';FOR I IN 1..370
    LOOP
      v_SQL:=v_SQL||I;
    END LOOP;
    我在存储过程里单独执行都报错。369刚好是1000长度,正确。