存储过程中一个拼接的sql语句,超长了不能执行怎么处理。

存储过程中一个拼接的sql语句,超长了不能执行怎么办。。。

CREATE OR REPLACE 
PROCEDURE "PROC_COUNTCREDIT" ( xxxxxxxx , o_cur OUT SYS_REFCURSOR)
IS
  .....
  sqlstr VARCHAR2(4000); -- 存放最后用的SQL语句
BEGIN

 ………………
  sqlstr := ''; -- 拼接出一个select语句(长度放word里查了一下,大概3500)
  OPEN o_cur FOR sqlstr ;
END;


我在调试的时候,前面都没问题,就是最后一步,查看sqlstr的值,结果显示的是“(Long value)”。。。
------解决方案--------------------
其实在pl/sql中,varchar2只有3200多的长度吧
------解决方案--------------------
多个变量拼接在execute immediate(a
------解决方案--------------------
b)