2015-09-01 2 views
0

Я следую за переносом данных на основе XML с использованием 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?

ответ

1

Вы должны обернуть это значение в элементе XML:

XMLELEMENT("TrialData" , @TrialData) 

генерирует

<TrialData>←</TrialData> 
+0

Это не работает на T-SQL. Можете ли вы предложить эквивалент t-sql. Тот, который работает на MS SQL Server. Я попытался использовать XML AUTO PATH/ELEMENTS, но ни один из них не позволяет мне сохранить этот управляющий символ в XML-переменную. – surega

+0

'SET @a_XML = '' + @TrialData + ''' – Stavr00

+0

Дает вам ошибку: «Разбор XML: строка 1, символ 12, незаконный символ xml». Ваш ответ не работает с символами управления. – surega

Смежные вопросы