拼接字符串报错:Oracle: ORA-06512:字符串缓冲区太小

报错目前可以肯定的是,拼接的字符串超过oracle定义的上限。
plsql中varchar2长度上限是4000字节
报错语句定位到下面的这句:
我这里的p_zbdcdyh是存储过程的输出参数,故是默认数据库的字符串varchar2的大小。

 p_zbdcdyh:=p_zbdcdyh||','||PSELENIUM.FDYH;

我每一个字符串是28字节,然后产生100个,拼接多半就报错了。
后面不采用拼接的方式,而是采用输出到dbms控制台看。
修改dbms的输出缓冲区,多加几个0
在这里插入图片描述

后话:
如果不是拼接的字符串 报这个错,多半是你定义的变量的大小不够,比如:

p_zl   varchar2(25);

但是实际的这个变量取的值是26字节,那么也会报错。