【问题标题】:JAVA - SQL server insert string value into varbinary(max) data typeJAVA - SQL 服务器将字符串值插入 varbinary(max) 数据类型
【发布时间】:2018-08-13 13:41:55
【问题描述】:

我有一个字符串值并将 SQL 服务器插入到 varbinary(max) 数据类型中

我的代码:

String fullText ="abcd"
byte[] binaryFullText = fullText.getBytes();
 preparedStatement.setBytes(33, binaryFullText);
preparedStatement.execute();
connection.commit();

但它像"0x4E18ACADEBE27B0ADEAAE"一样插入

我想如何在数据库中插入实际值?有时我的字符串超过了 varbinary(max) 的最大限制,所以在这种情况下。

如何将整个值插入到字段中?

【问题讨论】:

  • varbinary 的最大存储大小为 2^31-1,简直是巨大的。你真的超过了吗? but its inserted like ... 如果你插入了一个字节数组,那么你确实插入了实际值。
  • 首先我使用 setstring() 如果达到最大限制它没有插入整个字符串值,所以我将数据类型更改为 varbinary(max),并使用 setBytes()

标签: java sql-server sql-server-2008-r2


【解决方案1】:

如果您确实超过了最大值,我能想到的一个解决方案是创建一个替代表。 让我们假设有问题的值是数据,并且在表 foo 中,其中

-----foo-----
foo.id
foo.data_id
foo.descpit

创建另一个表

-----bar------
bar.id
bar.data

现在您只需将更多条目添加到具有正确 ID 的条形表中,即可将任意数量的数据链接到 foo.data_id。

这还允许您将字段的值更改为可以存储纯文本的文本。我不相信您可以将位存储到字段中并期望阅读纯文本

你失去了一些灵活性,但你获得了无限理论存储的能力。

【讨论】:

    猜你喜欢
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多