Python 和 SQL Server

0 投票
1 回答
1007 浏览
提问于 2025-04-15 19:38

当我在微软的企业管理器中对一个 varbinary 字段执行查询时,得到的结果是可读的十六进制格式,比如 ab2c2f2d... 但是当我用 pymssql 执行同样的查询时,结果却是一堆乱码。

我的查询语句是:select x from table --这里的 x 是 varbinary 字段

有没有人能帮我解决这个问题?

1 个回答

2

微软的企业管理器正在把二进制值转换成十六进制字符串。

一个方法是把你的查询改成 SELECT CAST( x AS varchar ) FROM table。这样,SQL Server 会帮你把 varbinary 转换成十六进制字符串,http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx

另一个方法是使用 Python 的一个模块,binascii,自己把二进制数据转换成十六进制字符串。你可以用 binascii.b2a_hex(data) 或 binascii.hexlify(data) 这两个函数来完成这个操作。

撰写回答