急!急!急!Oracle CLOB 读取出错!

时间:2021-11-15 08:28:22
我们公司有个软件原来是用Oracle9i的,现在接了个项目。要将
软件装在客户的服务器上,上面只有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