小编use*_*299的帖子

如何从SQL Server中的VARCHAR()中删除尾随CHAR(0)?

在Microsoft SQL Server中,我尝试varchar()通过存储varbinary()到上下文信息将字符串传递给触发器.

通过CONTEXT_INFO自身传递数据不是问题.

我的问题是,我必须转换varchar()varbinary()能够通过数据上下文信息,并转换回varchar()产生拖尾CHAR(0)的人物,我不能妥善处理了.

我试图找到CHAR(0)to substring 的第一个索引到一个新的正确的字符串,但没有成功.其他内置函数也无法CHAR(0)正确处理字符.

但:

  • LEN() =>总是返回128,
  • CHARINDEX()=>找不到CHAR(0),
  • RTRIM()=>不修剪不可打印的CHAR(0)字符,
  • REPLACE()=>不替换CHAR(0),
  • 执行时的异常:

    SELECT * FROM (SELECT (@textbin) AS [blabla]) AS [result] FOR XML
    
    Run Code Online (Sandbox Code Playgroud)

特别是我需要传递的字符串,作为纯文本,没有尾随空格/ CHAR(0)将字符串放到xml.

PS.:xml中的BINARY BASE64表示不是我可以使用的选项!

这是一个测试SQL脚本

DECLARE @text VARCHAR(128)
DECLARE @bintext BINARY(128)
DECLARE @textbin VARCHAR(128)

SET @text = 'test'
--SET @text = 'test' + CHAR(0)
--SET @text = …
Run Code Online (Sandbox Code Playgroud)

xml sql sql-server

5
推荐指数
1
解决办法
1444
查看次数

标签 统计

sql ×1

sql-server ×1

xml ×1