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

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

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

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


person none    schedule 05.01.2011    source источник


Ответы (3)


Достаточно простого приведения:

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

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

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

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

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

ИЗМЕНИТЬ:

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

http://www.petefreitag.com/item/734.cfm

http://www.teratrax.com/articles/varchar_max.html

http://msdn.microsoft.com/en-us/library/ms187752(v=SQL.90).aspx

person James Wiseman    schedule 05.01.2011
comment
проблема с varchar заключается в ограничении x байтов, чего нельзя сказать о xml. - person none; 05.01.2011
comment
Какую версию SQL вы используете. nvarchar(max) должен предложить вам до 2 ГБ. - person James Wiseman; 05.01.2011
comment
после быстрого поиска есть разница между указанием varchar(5000) и varchar(max) - person none; 05.01.2011
comment
Ни CAST(), ни CONVERT() не будут правильно распаковывать xml. Обработка преобразования в NULL, когда в функции запроса набора узлов нет соответствующего тега, также не работает. - person Jay; 04.11.2014

Я только что попробовал следующее решение, и да, вам нужен as XMLCol

select cast(XMLCol as nvarchar(max)) as XMLCol 
person Marcus Gallegos    schedule 20.11.2019

person    schedule
comment
Это то, что я обычно делаю, это так чисто, легко запомнить, трудно испортить :) - person Squazz; 14.04.2016