今天在项目中遇到一个小错,clob 字段的数据,在读取时报字符串缓冲区太小,看了网上的解决
1.要修改缓冲区的大小,但是生产环境没法改。
2.调用oracle的系统函数也不行
后来想到jdbc可以直接读取clob字段,于是采用了spring的rs.getClob()方法,成功解决上述错误。
代码如下:
public static String clobToString(CLOB clob){
String reString = "";
try {
if (clob == null || clob.getCharacterOutputStream() == null)
return "";
Reader is = clob.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {
sb.append(s);
s = br.readLine();
}
reString = sb.toString();
} catch (Exception e) {
reString = "";
}
return reString;
}