我有一个pdf存储在数据库中作为LONGBLOB。
我需要使用Groovy脚本检索它的二进制输出流。
我试过这个:
rowTest = sql.firstRow("select data from mytable id = 666");
file = rowTest[0];
myLongBlob = (oracle.sql.BLOB)file;
但是,我得到了一个强制转换异常:
javax.script.ScriptException: javax.script.ScriptException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[B@48eb2326' with class '[B' to class 'oracle.sql.BLOB'
然后我意识到我正在尝试将LONGBLOB转换为BLOB,这可能是导致此错误发生的原因?
无论如何,还有另一种方法可以从LONGBLOB中读取我的PDF吗?
感谢。
编辑:错误不是由于将LONGBLOB强制转换为BLOB,我尝试使用BLOB并发生同样的错误。
编辑:我正在尝试按照本教程:http://groovy.codehaus.org/Reading+from+a+Blob
答案 0 :(得分:4)
对象'[B@48eb2326'
指的是字节数组; rowTest[0]
处的对象是byte[]
,而不是Blob
。所以最简单的事情可能是byte[] myLongBlob = (byte[]) file
(无论如何,这对你来说可能更方便!)。