0
点赞
收藏
分享

微信扫一扫

java中读取Oracle clob数据出现的连接关闭问题解决办法

钟罗敏 2022-08-23 阅读 84


今天在读取一个Oracle的clob字段时出现了一个奇怪的错误:

java.sql.SQLException: 关闭的连接
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.sql.CLOB.getDBAccess(CLOB.java:1196)

Java读取clob字段和读取一般字段是有一些区别。因为clob字段是Oracle用来存储大字段的类型,clob字段可以存储4G的容量。

经过一番周折最终解决了这个问题,解决办法如下:

if(ret instanceof oracle.sql.CLOB) {  
//oracle的CLOB类型需要特殊处理
oracle.sql.CLOB clob = (oracle.sql.CLOB) ret;
Reader inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
String value = new String(c); //这里就是最终处理好的Clob字段
inStream.close(); //读取完毕之后关闭流
}

 

举报

相关推荐

0 条评论