我读的文件,从结果和它所需要的保存文件到Oracle数据库。

...
ResultSet rs = ...
java.sql.Blob myfile = rs.getBlob("field")
java.io.OutputStream os = ((oracle.sql.BLOB) myfile).getBinaryOutputStream();

我得到这个消息错误

java.lang.ClassCastException

任何一个已解决这个?谢谢!

有帮助吗?

解决方案 3

我已经找到了解决方案。我想与谁拥有这个问题分享。

从Oracle斑点获得的OutputStream的代码是:

java.io.OutputStream os = ((oracle.sql.BLOB) myBlob).setBinaryStream(1L);

的setBinaryStream()被实际上返回java.io.OutputStream对象

其他提示

java.sql.Blob 是个界面.据推测执行返回你的 ResultSet 是一个不同的实施 oracle.sql.BLOB?

这是什么 myfile.getClass() 回来吗?

您似乎没有一个oracle.sql.BLOB那里(如果你这样做,它应该工作,BLOB实现BLOB)。什么是ClassCastException异常说这是什么?

什么的Oracle版本和你用的是什么JDBC驱动程序的版本?

getBinaryOutputStream的无论如何过时,你应该使用的的setBinaryStream 的在JDBC(3.0)接口,这可能就不再需要去Oracle的内部类的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top