У меня есть таблица с одним столбцом с типом данных XML
.
CREATE TABLE Employee
(
ID INT,
Name VARCHAR(200),
ExtraInfo XML
)
Я должен использовать тип данных XML для столбца ExtraInfo, и у меня есть следующая инструкция INSERT
INSERT INTO Employee
VALUES
(1, 'John Doe',
CONVERT(XML, '<root><section><![CDATA[Some weird content with weird characters (*&#^@$]]></section></root>'))
После выполнения приведенного выше оператора я получаю следующее в столбце ExtraInfo.
<root>
<section>Some weird content with weird characters (*&#^@$</section>
</root>
Как сохранить раздел CDATA
нетронутым?
Я уже проверил другой связанный вопрос, это не совсем то, что Я ищу.
CREATE TABLE
должны использоваться круглые скобки (CREATE TABLE (......)
), а не фигурные скобки ({ ... }
), чтобы он был действительным кодом T-SQL... - person marc_s   schedule 05.04.2021NVARCHAR(MAX)
, но любая операция с ними с помощью методов XML приведет к повторной перекодировке CDATA. Обратите внимание, что полученная здесь разметка эквивалентна (если вы запросите содержимоеsection
с помощью.value
, вы получите правильные данные), даже если она не идентична. - person Jeroen Mostert   schedule 05.04.2021