首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

clob 和varchar2的转换有关问题

2012-05-27 
clob 和varchar2的转换问题过程中 有个变量 V_GZ clob;dbms_lob.getlength(V_GZ)4000我想 把他存到varcha

clob 和varchar2的转换问题
过程中 有个变量 V_GZ clob;  
dbms_lob.getlength(V_GZ)=4000
 我想 把他存到varchar2变量 v_gz_new里面
我用 这个
v_gz_new :=dbms_lob.substr(V_GZ,4000,1);
就会报错string buffer too small
截取2000的时候不报错

然后我又想分开拼接
v_gz_new1 :=dbms_lob.substr(V_GZ,2000,1);
v_gz_new2 :=dbms_lob.substr(V_GZ,2000,2000);
v_gz_new :=v_gz_new1||v_gz_new2;结果拼接的这句又报错了 
请问各位大神,这个怎么解决呢?

[解决办法]
CLOB存放的是字符集,varchar2存放的是字节,一个字符可以包含多个字节,从你的描述中可以看出你的环境是一个字符包含2个字节,而varchar2的最大长度是4000个字节,所以你只能取v_gz_new1 :=dbms_lob.substr(V_GZ,2000,1);

热点排行