仅在 sql 中将数据类型 varchar 转换为 varbinary 时出错,仅适用于少数值


IF(ISNUMERIC(RTRIM(LTRIM('83B1B88'))) = 0)
select CONVERT(VARCHAR, CONVERT(INT, CONVERT(VARBINARY, CONVERT(VARCHAR, '0x' + '83B1B88'), 1)))

我不确定为什么sql抛出将数据类型varchar转换为varbinary时出错 我只得到这个异常,如1B91B32169DF9013077B5

谁能帮我?

您正在将1样式传递给CONVERT

如果data_type是二进制类型,则表达式必须是字符表达式。表达式必须由偶数个十六进制数字 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f( 组成。如果样式设置为 1,则字符 0x 必须是表达式中的前两个字符。如果表达式包含奇数个字符,或者任何字符无效,则会引发错误。

我的强调。

所有无效序列的示例似乎都有奇数长度。如果您有奇数长度序列,则应添加填充0。是在开头还是结尾填充取决于您的确切要求、序列来自何处等。

相关内容

最新更新