当前位置: 首页 > 知识库问答 >
问题:

在BLOB Oracle中存储Byte[]

谈旺
2023-03-14
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());

我认为问题是image的字节长度,因为当我得到字符串的长度()时,它大约是20万字节。

当我在字符串上做子字符串(3000)时,它很容易保存在BLOB列中。

那么问题到底在哪里??

  1. 图像长度太长了吗?
  2. 或者我应该使用Oracle的任何其他数据类型?

我读到BLOB可以保存高达4GB的数据,那为什么不是我的??

共有1个答案

龚凯泽
2023-03-14

关于在JDBC中使用BLOB的Oracle教程在这里。

相关部分:

Clob myClob = this.con.createClob();
Writer clobWriter = myClob.setCharacterStream(1);

连同:

 类似资料:
  • 问题内容: 我这样定义字典: 然后,我试图将其存储在userdefaults中: 但它抛出错误: 问题答案: 用户默认对象只能是的一个实例(或实例的组合) ,,,,,或。 有些斯威夫特类型自动桥接基金类型,例如,,,和彼此桥接。因此,可以将其保存为用户默认设置: 在64位体系结构上, 是 64位整数,而在32位体系结构上,是32位整数。 的固定大小的整数类型,例如是 不 自动桥接。在Swift-

  • 我正在尝试使用put方法将arraylist存储在hashmap中。我在下一步中清除了列表,以便在下一次迭代中添加下一组值。一旦清除列表,地图中的值也会被清除。虽然我在清理清单之前已经把清单放在地图上了。 sysout打印{key=[]} 有人请让我清楚如何坚持hashmaphash地图。

  • 问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’

  • 主要内容:程序员的幽默计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。 要想学习编程,就必须了解二进制,它是计算机处理数据的基础。 内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。

  • 问题内容: 我在任何地方都找不到此答案,但是可以从MySQL中的另一个存储过程调用存储过程吗?我想找回标识值,并在父存储过程中使用它。我们不能再使用FUNCTIONS! 问题答案: 参数应该可以帮助您将值返回给调用过程。基于此,解决方案必须是这样的。

  • 问题内容: 我想将3.50存储到mysql表中。我有一个将其存储在其中的浮点数,但它存储为3.5,而不是3.50。如何获得尾随零? 问题答案: 不要将货币值存储为浮点型,请使用DECIMAL或NUMERIC类型: MySQL数值类型的文档 编辑和说明: 浮点值容易受到舍入误差的影响,因为它们的精度有限,因此除非您不在乎只得到9.99而不是10.00,否则应使用DECIMAL / NUMERIC,因