我需要将 varchar
转换为 varbinary
。我正在使用的查询仅适用于某些值。
这个工作正常
SELECT CONVERT (VARBINARY(MAX), 'AFE27AF97DC6', 2)
虽然这个会抛出错误
Error converting data type varchar to varbinary
SELECT CONVERT (VARBINARY(MAX), 'AFEE27AF97DC6', 2)
我需要使用样式 2。
我已经阅读了所有类似的问题,但找不到解决方案。任何想法都会对我有帮助。谢谢!
最佳答案
嗯,AFEE27AF97DC6
短了一个半字节,看起来只接受完整字节。尝试对其进行零填充。例如
SELECT convert(varbinary(max), '0AFEE27AF97DC6', 2)
如果字符串是可变的,您还可以将其包装在 CASE
表达式中,检查字符串的长度是偶数还是奇数。
SELECT convert(varbinary(max),
CASE
WHEN len('AFEE27AF97DC6') % 2 <> 0 THEN
concat('0', 'AFEE27AF97DC6')
ELSE
'AFEE27AF97DC6'
END,
2)
(用您的变量替换文字。)
关于sql - 在 SQL Server 中将 VarChar 转换为 VarBinary 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56514282/