检测/确定存储在varbinary字段中的数据

时间:2014-10-21 14:15:40

标签: sql sql-server tsql

我在数据库中有几个表是varbinary列。它们的名称类似于CSB_BLOB或OBJECT_BLOB。现在我在获取数据方面取得了间歇性的成功。

例如,此查询从此数据返回可读文本。 GREAT!

0x46726F6D3A20226465616E6E6167726.....etc --data as stored in the column

SELECT CAST(CSB_BLOB AS VARCHAR(MAX)) AS 'Message' FROM OBJECT_BLOB

但是,此列具有以下查询结果。

0x0001000000FFFFFFFF01000000000000000C....etc. --data as stored in column

--this query returns empty result
SELECT (CSB_BLOB AS VARCHAR(MAX)) AS 'Message' FROM CSB_STATUS_LOG

--this query returns no change???
SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), CSB_BLOB, 2), 2) FROM CSB_STATUS_LOG
0001000000FFFFFFFF01000000000000000C....etc

显然两者之间存在差异,但我没有足够的教育来解释这种差异。我需要学习/阅读什么,以便我可以查看其中一个BLOB列中的数据,并知道如何将其转换为有意义的内容?

如果你不能真正了解我需要尝试的所有不同转换的内容吗?这本身似乎是一个不可能的问题,因为几乎任何东西都可以转换为二进制并存储......

就不同的转换而言,我并不是要求您为我编写TSQL,而只是告诉我常见的转换。

类似的东西:

  1. 尝试转换为varchar以查看它是否为文本。
  2. 变成一个字节数组并查看它是否为jpg
  3. 转换为字节数组并查看它是否为pdf
  4. 将其转换为十六进制,然后转换为varchar
  5. 等...
  6. 谢谢

0 个答案:

没有答案