rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » JavaEE

WebLogic BloB字段保存解决办法

原来在Tomcat下面对blob字段保存采用如下方式:
   select * from table1 where tnoid=? for update.
  之后获取到oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);
    OutputStream out = blob.getBinaryOutputStream();
  向该输出流中写入二进制流即可。
    int iBufferSize = 10240;
    int i = 0;
    int iLen = sContent.length;
    try {
     while ((iLen - i) > iBufferSize) {
      out.write(sContent, i, iBufferSize);
      i = i + iBufferSize;
     }
     if ((iLen - i) > 0) {
      out.write(sContent, i, (iLen - i));
     }
     out.flush();
    } catch (Exception ex) {
     ex.printStackTrace();
    }
  可当我将该段代码移植到WebLogic之后,结果在上面第3行处出现错误:
   weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB,
  出现这种原因分析可能是使用了WebLogic的DataSource,而DataSource所使用的驱动同Oracle的驱动有冲突,所以在进行强制类型转换的时候出现错误。
   如何解决呢?其实可以不通过强制类型转换得到该输出流。避免强制类型转换出现的错误。
    OutputStream out = rs.getBlob(1).setBinaryStream(1);
   后面就是向该流里面输出内容了。代码同前了。

顶一下
(0)
踩一下
(0)