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

前端之家收集整理的这篇文章主要介绍了sql-server – 如何将nvarchar解码为文本(SQL Server 2008 R2)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有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及更高版本.

猜你在找的MsSQL相关文章