[英]Store byte[] in BLOB Oracle
我正在执行以下操作将其插入BLOB Oracle 11g。
图像采用Base64编码,存储在从XML提取的字符串中。
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());
我认为问题是图像的字节长度,因为当我获得String的length()时,它约为200,000个字节 。
当我在String上执行subString(3000)时, 它很容易保存在BLOB列中 。
所以问题实际上在哪里?
我读到BLOB最多可以保存4GB数据,那为什么我的呢?
这里是有关将Blob与JDBC结合使用的Oracle教程。
相关部分:
Clob myClob = this.con.createClob();
Writer clobWriter = myClob.setCharacterStream(1);
和...一起:
添加和检索BLOB SQL对象类似于添加和检索CLOB SQL对象。 使用Blob.setBinaryStream方法检索OutputStream对象,以写入Blob Java对象(称为方法)表示的BLOB SQL值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.