繁体   English   中英

将byte []存储在BLOB Oracle中

[英]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列中

所以问题实际上在哪里?

  1. 图像长度是否太长?
  2. 还是我应该使用Oracle的任何其他数据类型?

我读到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM