gpt4 book ai didi

sql-server - 将十六进制 varbinary 转换为其字符串表示形式?

转载 作者:行者123 更新时间:2023-12-04 02:40:51 27 4
gpt4 key购买 nike

我在 SQL Server 数据库中有一些 base-64 编码的字符串,例如:

DECLARE @x VARBINARY(64);
SET @x = 0x4b78374c6a3733514f723444444d35793665362f6c513d3d

当它被 CAST 或转换为 VARCHAR 时,我得到:
+˽Ð:¾Îréî¿•

我正在寻找 SQL Server 以将 varbinary 的十六进制表示作为 varchar 返回一个 varchar,例如:
4b78374c6a3733514f723444444d35793665362f6c513d3d

是否有 CAST/CONVERT/function 中的构建来执行此操作,还是必须将其添加为用户定义的函数? UDF 会是什么?

如果我可以选择在转换过程中是要大写 A-F 还是小写 a-f,则加分。

最佳答案

对于 SQL2005,我会使用 xsd:hexBinary data type :

DECLARE @x VARBINARY(64);
SET @x = 0x4b78374c6a3733514f723444444d35793665362f6c513d3d

SELECT '0x'+CONVERT(XML, '').value('xs:hexBinary(sql:variable("@x") )', 'VARCHAR(MAX)');
SELECT '0x'+LOWER(CONVERT(XML, '').value('xs:hexBinary(sql:variable("@x") )', 'VARCHAR(MAX)'));

对于 SQL2008+,我将使用 CONVERT(参见 section Binary styles):
SELECT CONVERT(VARCHAR(MAX), @x, 1)

引用:
http://blogs.msdn.com/b/sqltips/archive/2008/07/02/converting-from-hex-string-to-varbinary-and-vice-versa.aspx

关于sql-server - 将十六进制 varbinary 转换为其字符串表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968728/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com