我正在执行以下操作,将其插入 BLOB Oracle 11g。
图像存储在从XML中提取的字符串中 Base64编码。
String str = "xyz...."
byte[] bytes = str.getBytes();
InputStream is = new ByteArrayInputStream(bytes);
PreparedStatement prepStmt = dbCon.prepareStatement("insert into Table(INDEX,RESPONSE_IMAGE) values(?,?);
prepStmt.setString(1, action.getIndex());
prepStmt.setBinaryStream(2, is, str.length());
我认为问题是图像的字节长度,因为当我得到字符串的长度()时,它大约是 200,000字节。
当我在字符串上执行 subString(3000)时,它很容易保存在BLOB列中。
那么问题究竟在哪里?
我读过BLOB可以保存多达4GB的数据然后为什么不能保存?
答案 0 :(得分:0)
将Blobs与JDBC一起使用的Oracle教程是here。
相关部分:
Clob myClob = this.con.createClob();
Writer clobWriter = myClob.setCharacterStream(1);
与:
一起添加和检索BLOB SQL对象与添加和检索CLOB SQL对象类似。使用Blob.setBinaryStream方法检索OutputStream对象以写入Blob Java对象(称为方法)所代表的BLOB SQL值。