微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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及更高版本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐