【问题标题】:Can't get a full length of binary data from SSMS无法从 SSMS 获取完整长度的二进制数据
【发布时间】:2019-06-11 13:49:08
【问题描述】:

表格

  • id - int
  • 文件 - varbinary(max)

查询

SELECT file 
FROM Table 
WHERE id = 1

数据

id 1 数据有一个文件。它的二进制长度是836,412。但是当我运行查询时,我只看到了 43,680 字节的二进制数据。

我尝试通过弹出面板中的“将结果另存为...”按钮将数据下载为 CSV。但是,我仍然无法获得完整长度的二进制数据。

在 CSV 中,只有 16 位(无符号,65534 长度)数据可用。不幸的是,我目前无法从我的应用程序中请求数据。我必须将其从 SSMS 中取出并在我的测试代码中手动转换才能看到该文件。

如何从 SSMS 获取完整的二进制数据?是否有显示全长二进制数据的选项?

【问题讨论】:

  • 添加到 sql , Len(file) 作为 FLen 。这将验证桌子上是否存在完整长度。什么是用来在表中创建该行的?我怎样才能复制问题?要创建这样的表?

标签: sql-server ssms


【解决方案1】:

您可以尝试使用如下查询将“文件”字段转换为 XML...

SELECT CAST(CONVERT(VARCHAR(MAX), file, 1) AS XML)
FROM Table
WHERE id = 1

但是,您需要确认您的 SSMS 查询选项设置正确:

Query | Query Options... | Results | Grid | XML Data: unlimited

这将以十六进制提供您的结果,如下所示:

0x47494638396150003200F70 ...

【讨论】:

    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2015-06-08
    相关资源
    最近更新 更多