软件装在客户的服务器上,上面只有Oracle8i;
结果在取CLOB类型的字段时候报错。
源代码如下:
Clob clob = rs.getClob("content");
{
Reader reader = clob.getCharacterStream();
BufferedReader br = new BufferedReader(reader);
String s = br.readLine();
while(s!=null)
{
if(index>0)
result = result + "\n";
result=result+s;
s=br.readLine();
}
}
java.io.IOException: 类型长度大于最大值
at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:716)
at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:222)
at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:163)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
这是怎么回事?!救命啊!!!
3 个解决方案
#1
原来在9i下上边这段代码是执行正常的。。。。
#2
路过,友情up...
#3
换用Oracle 10g的驱动(到www.oracle.com去下载)试一试,直接用pstmt.setString()赋值,直接用rs.getString()读值就OK了,没有所谓4k的限制;不过我的数据库是Oracle 9i
#1
原来在9i下上边这段代码是执行正常的。。。。
#2
路过,友情up...
#3
换用Oracle 10g的驱动(到www.oracle.com去下载)试一试,直接用pstmt.setString()赋值,直接用rs.getString()读值就OK了,没有所谓4k的限制;不过我的数据库是Oracle 9i