WebLogic下使用连接池,无法操作Oracle的BLOB大字段

nccxl 2007-04-28 02:38:17
在保存大字段时出现如下错误:
weblogic.jdbc.wrapper.Blob_weblogic_jdbc_base_BaseBlob

--实现代码如下-------------------------------
ResultSet update = stmt.executeQuery("查询语句");
Blob vField = (Blob)update.getBlob("FileBody");
OracleThinBlob otb = (OracleThinBlob)vField;
OutputStream outstream = otb.getBinaryOutputStream();
outstream.write(mFileBody, 0, vSize);
outstream.close();
---------------------------------------------

这里用的是java.sql.Blob,换成weblogic.jdbc.wrapper.Blob也不行,用oracle.sql.BLOB也不行,我快要疯掉啦。
调试中发现vField是:{weblogic.jdbc.wrapper.Blob_weblogic_jdbc_base_BaseBlob@1fde},现在真的不知道怎么办了。
...全文
596 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nccxl 2007-04-30
  • 打赏
  • 举报
回复
自己顶一下。希望有用过的人看见。
jyh149129 2007-04-29
  • 打赏
  • 举报
回复
那我不太清楚了,weblogic 没用过,帮顶了!
nccxl 2007-04-29
  • 打赏
  • 举报
回复
楼上的兄弟,我的问题应该是weblogic自己封装过Blob后的问题。因为转换的时候出错。
jyh149129 2007-04-29
  • 打赏
  • 举报
回复
没用过weblogic,我在glassfish+oracle10g上采用下面的代码倒是没有问题
最好使用oralce的最新ojdbc.jar驱动。Blob 都用oracle.sql.Blob

String sqls = "UPDATE CMM SET vale = EMPTY_BLOB() WHERE ID =?" ;
conn = Connections.getConnection();
ps = conn.prepareStatement(sqls);
ps.setLong(1,cmm.getId());
ps.execute();
conn.setAutoCommit(false);
sqls = "SELECT vale FROM cmm WHERE ID = ? FOR UPDATE";
ps = conn.prepareStatement(mysql);
ps.setLong(1, cmm.getId());
ResultSet r = ps.executeQuery();
Blob b;
for(b = null; r.next(); b = (BLOB)r.getBlob(1));
r.close();
OutputStream os = b.getBinaryOutputStream();
InputStream contentStream = cmm.getInputStream();
int i;
while((i = contentStream.read()) > -1)
os.write(i);
os.close();
conn.commit();
nccxl 2007-04-29
  • 打赏
  • 举报
回复
楼上的,给个例子参考一下。
southben 2007-04-28
  • 打赏
  • 举报
回复
你应该使用oracle的驱动程序,不应该使用weblogic自带的驱动,这问题就能解决
nccxl 2007-04-28
  • 打赏
  • 举报
回复
OracleThinBlob和oracle.sql.BLOB都转型不了,一转就报错。
java.lang.ClassCastException: weblogic.jdbc.base.BaseBlob
nccxl 2007-04-28
  • 打赏
  • 举报
回复
你给的地址的方法我也用了。现在怎么的都报一个错误就是在转型的时候。
java.lang.ClassCastException: weblogic.jdbc.base.BaseBlob
nccxl 2007-04-28
  • 打赏
  • 举报
回复
weblogic是9.2的版本
masse 2007-04-28
  • 打赏
  • 举报
回复
还有,你的weblogic是什么版本
masse 2007-04-28
  • 打赏
  • 举报
回复
试试这个呢
http://blog.bc-cn.net/user17/97897/archives/2006/2818.shtml

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧