ms sql xml тип данных преобразовать в текст

18

в MS Sql существуют типы данных, которые не поддерживаются delphi 7, тип данных xml является одним из примеров.

Я хочу преобразовать тип данных XML в текстовый тип данных, чтобы я мог обрабатывать его в delphi.

Есть ли способ конвертировать из xml в текст?

    
задан none 05.01.2011 в 16:32
источник

2 ответа

34

Простое приведение будет достаточным:

select cast(XMLCol as nvarchar(max)) as XMLCol 

Или для не-юникода:

select cast(XMLCol as varchar(max)) as XMLCol 

Вы не можете явно преобразовать тип данных «текст».

Я добавил as XMLCol , чтобы убедиться, что преобразованные данные имеют то же имя, что и столбец. Конечно, этого не должно быть.

EDIT:

Несколько ссылок. Вам рекомендуется использовать nvarchar (max) вместо text независимо. Microsoft заявила, что они будут обесценивать эти типы в будущих выпусках. nvarchar (max) должен предложить вам 2GB:

Ссылка

Ссылка

Ссылка

    
ответ дан James Wiseman 05.01.2011 в 16:40
  • проблема с varchar - это предел x байтов, что не соответствует xml. –  none 05.01.2011 в 16:53
  • Какую версию SQL вы используете. nvarchar (max) должен предложить вам до 2 ГБ. –  James Wiseman 05.01.2011 в 17:02
  • после быстрого поиска существует разница между указанием varchar (5000) и varchar (max) –  none 05.01.2011 в 20:31
  • Ни CAST (), ни CONVERT () не будут правильно отменять xml. Обработка преобразования в NULL, когда нет соответствующего тега в функции запроса узлов, также терпит неудачу. –  Jay 04.11.2014 в 00:08
9
SELECT CAST(YourXMLColumn as nvarchar(max))
    FROM YourTable
    
ответ дан Joe Stefanelli 05.01.2011 в 16:36
  • Это то, что я обычно делаю, это так чисто, легко запомнить, трудно испортить :) –  Squazz 14.04.2016 в 16:01