2011-01-05 15 views
18

w MS Sql istnieją typy danych, które nie są obsługiwane przez delphi 7, typ danych xml jest jednym z przykładów.ms sql xml typ danych przekonwertować na tekst

Chciałbym konwertować typ danych XML na typ danych tekstowych, aby mógłbym obsłużyć go w delphi.

Czy istnieje sposób konwersji z XML na tekst?

Odpowiedz

33

Prosty obsada wystarczy:

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

lub też innych niż Unicode:

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

Nie można przekształcić bezpośrednio do tekstu '' typu danych.

Dodałem as XMLCol, aby upewnić się, że przekonwertowane dane mają taką samą nazwę jak kolumna. Oczywiście nie musisz tego mieć.

EDIT:

kilka linków. Zachęcamy do używania nvarchar (max) zamiast text niezależnie. Microsoft oświadczył, że wycofa te typy w przyszłych wydaniach. nvarchar (max) powinien zaoferować 2GB:

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

+0

problem z varchar jest limitem x bajtów, co nie ma miejsca w przypadku xml. – none

+2

Którą wersję SQL używasz. nvarchar (max) powinien oferować do 2 GB. –

+0

po szybkim wyszukiwaniu, istnieje różnica między określeniem varchar (5000) a varchar (max) – none

8
SELECT CAST(YourXMLColumn as nvarchar(max)) 
    FROM YourTable 
+0

To co zwykle zrobić, to jest tak czyste, łatwe do zapamiętania, trudno bałagan :) – Squazz

Powiązane problemy