![](/img/trans.png)
[英]java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB
[英]Why I cannot cast oracle BLOB from native java Blob
我正在從ResultSet中讀取文件,並且需要將文件保存到Oracle數據庫中。
...
ResultSet rs = ...
java.sql.Blob myfile = rs.getBlob("field")
java.io.OutputStream os = ((oracle.sql.BLOB) myfile).getBinaryOutputStream();
我收到此錯誤消息
java.lang.ClassCastException
任何人都有解決方案嗎? 謝謝!
我找到了解決方案。 我想與那些有這個問題的人分享。
從oracle blob獲取輸出流的代碼是:
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 ,你應該在JDBC(3.0)接口中使用setBinaryStream ,這可能根本不需要去Oracle的內部類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.