0

我使用 SQL Server 2005。我想知道是否可以在其他环境(例如 Matlab)中读取从 SQL-Server 打印的二进制数据?

例如,

SET NOCOUNT ON 
CREATE TABLE #Temp ( C1 binary ) INSERT INTO #Temp (C1) SELECT 100

SELECT * FROM #Temp

DROP TABLE #Temp

结果是0x64我认为是十六进制表示法。使用记事本查看时,此数据看起来相同。但是,在记事本中打开从 Matlab 编写的二进制 100 绝对不是十六进制!请帮助/评论!

4

1 回答 1

0

鉴于它们处理二进制输入,您应该能够在其他工具中从 SQL Server 读取二进制输出。

从您所写的内容来看,您并没有以等效的方式比较事物(苹果对苹果)。十六进制只是以人类可感知的形式表示位的一种方式,因此除非您的查看方法都能够使用相同的符号,否则您可能会看到不同的东西。我很确定记事本不会做十六进制。

0x64 的 SSMS“输出”是工具在打印/屏幕上表示二进制数据的方式 - 在这种情况下,十进制值 100。如果您从 SSMS 窗口剪切和粘贴,您实际上是在剪切文本字符串“0x64”,因此在记事本中打开它看起来是一样的,但实际上它不是您原来的十进制 100 值。

如果您从 Matlab 保存文件并在记事本中打开该文件,您应该会看到被解释为文本的字节值,在这种情况下可能是“d”(小写“D”),因为那是 ASCII/UTF-十进制 100 的 8 值。

于 2012-04-30T19:05:49.627 回答