注:问题已经解决,oracle8的问题,处理lob需要oci
昨天处理数据的时候,遇到oracle的clob的问题。解决不了,郁闷。
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("content");
Reader reader = rs.getCharacterStream("content");
reader.read(c);
System.out.println("content:" + new String(c));
if (null != clob && 0 < clob.length())
System.out.println("content:" +
clob.getSubString((long) 1, (int) clob.length()));
else
System.out.println("nop");
在这下面两处,总是报错。
和
clob.getSubString((long) 1, (int) clob.length())
错误如下:
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.Reader.read(Reader.java:100)
at com.jxlt.db.parse.Parse.parse(Parse.java:46)
at com.jxlt.db.parse.Parse.main(Parse.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:86)
google了一下 ,很多人说是驱动的问题,我用了oracle 9自己带的class12&ojdbc14.jar都不行,到oracle站点下了 oralce 10g的驱动,同样也是。