You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中TRANSLATE函数能否使用十六进制代码替换字符?

SQL Server TRANSLATE函数处理十六进制字符替换问题

可以用TRANSLATE实现十六进制字符替换为空格,但你的写法有误导致报错。

错误原因

你传入的'\x80'在SQL Server中会被解析为4个普通字符(\、x、8、0),而第三个参数是单个空格,两者长度不匹配,触发TRANSLATE的参数校验规则,报错信息翻译为:

消息 9828,级别 16,状态 1
内置函数TRANSLATE的第二个和第三个参数必须包含相同数量的字符

正确写法

在SQL Server中,需通过CHAR()函数将十六进制值转换为对应字符,才能作为TRANSLATE的参数使用。替换十六进制0x80为空格的正确语句如下:

SELECT TRANSLATE('目标字符串', CHAR(0x80), ' ')

如果需要替换多个十六进制字符,只需在第二个参数中用+拼接多个CHAR(),同时第三个参数保持相同长度的替换字符即可,示例:

SELECT TRANSLATE('多字符测试', CHAR(0x80) + CHAR(0x81), '  ')

内容的提问来源于stack exchange,提问作者Ludovic Aubert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 13:04:58