我试图用以下代码将blob转换为字符串:
ResultSet rs = stmt.executeQuery(query);
Blob newValueBLOB = rs.getBlob("NEW_VALUE");
System.out.println(newValueBLOB);
String newValue = new String(newValueBLOB.getBytes(0, (int) newValueBLOB.length()));
我的数据库是oracle,连接建立正确。我找到了一个类似的答案,但我的答案不起作用!
1条答案
按热度按时间0pizxfdo1#
从javadoc for blob#getbytes:
byte[]getbytes(long pos,int length)引发sqlexception
pos—要提取的blob值中第一个字节的顺序位置;第一个字节位于位置1
所以,你的电话
getBytes()
应该以1作为起始位置,而不是0:作为一种可能更简单的选择,您可以使用
ResultSet#getBytes
直接: