4

我在使用 jdbc 将 blob 对象从 oracle DB 检索到 java API 时遇到问题。问题是当我使用 db 中的函数执行 Collable 语句时,它返回一个 blob 字段,此异常被抛出:

tempBlob = (oracle.sql.BLOB)cstmt.getObject(1);

带有此错误消息:

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB. 

我从数据库中得到的对象是oracle.sql.BLOB. tempBlob 变量是一个对象oracle.sql.BLOB。哪里有问题?

4

4 回答 4

4

您的类路径中可能有两个 oracle jar 文件。请移除一个 jar 并重新部署。

于 2012-07-10T10:51:16.023 回答
2

有时一个 JAR 在应用程序类路径中,另一个在应用程序服务器类路径中(例如:在 Tomcat 中$CATALINA_HOME/lib

于 2012-11-16T12:03:21.463 回答
0

不要再像:

BLOB tempBlob = (oracle.sql.BLOB)cstmt.getObject(1);

解决方案 :

OutputStream outstrm =(rs.getBlob(1)).setBinaryStream(1L); 
于 2018-10-23T03:09:51.460 回答
0

生成碧玉报告时出现此错误。

我在该报告的 jrxml 文件中替换了class=oracle.jdbc.OracleBlob with class=java.sql.Blob。它对我有用。

于 2018-12-17T13:13:49.770 回答