加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何将nvarchar解码为文本(SQL Server 2008 R2)?

发布时间:2020-12-12 07:01:59 所属栏目:MsSql教程 来源:网络整理
导读:我有一个带有nvarchar(4000)字段的SQL Server 2008 R2表. 存储此表的数据看起来像 ‘696D616765206D61726B65643A5472’ 要么 ‘303131’(“011”). 我看到每个char都编码为十六进制. 如何从表中读取这些数据?我不想写写解码功能,我的意思是存在更简单的方法.
我有一个带有nvarchar(4000)字段的SQL Server 2008 R2表.

存储此表的数据看起来像

‘696D616765206D61726B65643A5472’

要么

‘303131’(“011”).

我看到每个char都编码为十六进制.

如何从表中读取这些数据?我不想写写解码功能,我的意思是存在更简单的方法.

附:对不起我的英语不好.

解决方法

SQL Server 2008实际上具有内置的十六进制编码和解码功能!

示例(将字符串转换为VarBinary时,请注意第三个参数值为“1”):

DECLARE @ProblemString VarChar(4000) = '54657374'
SELECT Convert(VarChar,Convert(VarBinary,'0x' + @ProblemString,1))

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

这种方法的优点是你不需要你通常试图避免的“Exec”调用,因为害怕注入其他东西.缺点是它只适用于SQL Server 2008及更高版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读