我正在使用FOR XML AUTO跟踪基于XML的数据传输。当遇到包含控制字符的列并尝试进行如下XML转换时,会导致异常:
DECLARE @TrialData NVARCHAR(200) = ''; --Not empty string..contains a control character '<-'
DECLARE @TrialDataInHex VARBINARY(100)
SET @TrialDataInHex = CONVERT(VARBINARY(100),@TrialData)
SELECT @TrialDataInHex; -- returns 0x1B00 looks like this '<-'
现在,当我尝试将其插入XML变量时,如下所示
DECLARE @a_XML XML;
SET @a_XML = @TrialData;
这导致了
XML解析:第0行,字符0,无法识别的输入签名
有人建议在使用XML FROM SQL数据媒体时如何处理控制字符?
答案 0 :(得分:1)
您必须将该值包装在XML元素中:
XMLELEMENT("TrialData" , @TrialData)
产生
<TrialData>←</TrialData>