java读取oracle的blob字段空指针错误!!!太奇怪了
java读取oracle的blob字段出错!!!
查询语句:
select id,filename,sfile from tfiles where id=1
(在数据库中执行查询,确定对应blob字段有值)
String fileName = rs.getString("filename"); //有值
--------------------------------
java.sql.Blob bb = rs.getBlob("sfile"); //bb为null
--------------------------------
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("sfile"); //blob为null
--------------------------------
InputStream in = rs.getBinaryStream("sfile"); //in为null
--------------------------------
byte[] b = rs.getBytes("sfile"); //b为null
--------------------------------
为什么我读取blob字段出来的就为null呢?
使用(OracleResultSet)rs).getBLOB("sfile");则必须使用weblogic自带一个weblogic.*.*.OracleResultSet
对象。同样结果为null
难道是我插入的文件数据本来就为空么?
--------------------------------
附:插入blob字段代码,先插blob控制,然后update,已编译执行成功:
stmt = con.prepareStatement("update tFiles set sFile = ? where Filename = ?");
byte[] buffer = this.getBinaryFile();
stmt.setBinaryStream(1,(new ByteArrayInputStream(buffer)),buffer.length);
stmt.setString(2, fileName);
--------------------------------
buffer我调试过了,保证非空,且执行完毕后在数据库中查询blob字段显示有值:(OraBlob)
--------------------------------
请问这到底是怎么回事?
为什么我取不出来呢?