Пытаюсь сейчас заставить один запрос с XML работать, что-то не получается.
Есть запрос:
declare @OBJECTS xml
set @OBJECTS = N'<root>
<object><![CDATA[
abc\
def
]]></object>
</root>'
SELECT
[Value] = T.c.value('.','nvarchar(MAX)')
FROM @OBJECTS.nodes('/root/object') T(c)
Я от него ожидаю что он вернет:
abc\
def
А запрос возвращает
abcdef
Пропадает начальный перевод строки, заменяется на пробел. И теряется символ "\" с последующим переходом на новую строку. Это решается если добавить еще один такой символ и еще один перевод строки. Но непонятно почему это происходит. Вроде такого поведения в CDATA быть не должно. Чем это может быть вызвано?