﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-javameal-随笔分类-oracle</title><link>http://www.blogjava.net/javameal/category/39420.html</link><description>难得认真！</description><language>zh-cn</language><lastBuildDate>Wed, 06 May 2009 08:44:54 GMT</lastBuildDate><pubDate>Wed, 06 May 2009 08:44:54 GMT</pubDate><ttl>60</ttl><item><title>ssh中往oracle存储blob数据出现的一些错误(备忘)</title><link>http://www.blogjava.net/javameal/archive/2009/05/06/269258.html</link><dc:creator>javameal</dc:creator><author>javameal</author><pubDate>Wed, 06 May 2009 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/javameal/archive/2009/05/06/269258.html</guid><wfw:comment>http://www.blogjava.net/javameal/comments/269258.html</wfw:comment><comments>http://www.blogjava.net/javameal/archive/2009/05/06/269258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javameal/comments/commentRss/269258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javameal/services/trackbacks/269258.html</trackback:ping><description><![CDATA[<font style="background-color: #c7edcc"><span style="color: red"><font style="background-color: #c7edcc">一，错误:java.lang.ClassCastException: oracle.sql.BLOB<br />
</font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般在存储blob数据时首先要将java.sql.Blob类型转为oracle.sql.BLOB再进行写入操作，在强制转换时就会丢<br />
java.lang.ClassCastException: oracle.sql.BLOB转型错误，形如:<br />
<font style="background-color: #c7edcc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerializableBlob sb = (SerializableBlob) instance.getBlobData();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BLOB wrapblob = (BLOB) sb.getWrappedBlob();//此行丢出<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主要原因少此行:<font style="background-color: #c7edcc">session.refresh(instance, LockMode.UPGRADE);加锁查询出，这样instance中存放的Blob数据就<br />
是oracle.sql.BLOB类型的。<br />
<br />
<span style="color: red">二,错误:<font style="background-color: #c7edcc">SQL Error: 1002, SQLState: 72000,ORA-01002: 提取违反顺序</font></span><font style="background-color: #c7edcc"> 出现这样的错误一定是事务没有控制好，用ssh<br />
框架请检查调用此功能的method是否在事务控制中，直接用hibernate操作是否有开事务。正确配置好事务就不会有<br />
问题了。</font><br />
</font><br />
</font></font>
<img src ="http://www.blogjava.net/javameal/aggbug/269258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javameal/" target="_blank">javameal</a> 2009-05-06 16:08 <a href="http://www.blogjava.net/javameal/archive/2009/05/06/269258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>