clob整理

来源:互联网 发布:数据芯片多少钱 编辑:程序博客网 时间:2024/06/06 09:14

1、java.sql.Clob 与oracle.sql.CLOB的区别。java1.4自带的jdbc Clob接口比jdbc驱动的CLOB接口少了很多方法。建议使用Oracle的JDBC的API。 如果要用Oracle的JDBC的API还需要在studio中将oracle的驱动引进来。不然会报错。 2 Clob字段可以正常导入数据实体,默认的EOS数据类型为“长字符串”,需要改为“字符串大对象”; 3在weblogic9.2环境中使用时,遇到ClassCastException的错误:java.lang.ClassCastException: weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB

原因分析:如果用weblogic的数据库连接池,那么返回的数据类型经过了一次包装也就是返回weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB,因此出现类型转换错误。也就是说在weblogic连接池下要必须用weblogic.jdbc.vendor.oracle.OracleThinClob  的CLOB。

代码:1 byte[]   bs   =   (byte[])   values[i].getValue();     ByteArrayInputStream   bin   =   new   ByteArrayInputStream(bs);     pstmt.setBinaryStream(i   +   1,   bin,   bin.available());

2sqlstr = "select content from textinfo where textinfokey=" + integer.tostring(textinfokey) + " for update"; java.sql.statement st = myconn.createstatement(); java.sql.resultset rs = st.executequery(sqlstr); java.sql.clob clob ; if (rs.next()) { clob = rs.getclob("content"); weblogic.jdbc.rmi.serialoracleclob cast1 =(weblogic.jdbc.rmi.serialoracleclob)clob; weblogic.jdbc.rmi.internal.oracletclobimpl cast2 =(weblogic.jdbc.rmi.internal.oracletclobimpl)cast1.gettherealclob(); clob myclob = (oracle.sql.clob)cast2.gettherealclob(); java.io.writer out=myclob.getcharacteroutputstream(); out.write(content); out.flush(); out.close();