是否可以从外部的SQL Server读取二进制数据(使用其他编程环境)

时间:2012-04-30 15:56:13

标签: sql-server binary hex

我使用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绝对不是十六进制的!请帮忙/评论!

1 个答案:

答案 0 :(得分:0)

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

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

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

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