2011-01-05 14 views
18

metne dönüştürme delphi 7 tarafından desteklenmeyen veri türleri vardır, xml veri türü bir örnektir.ms sql xml veri türü MS Sql'de

XML veri türünü Text veri türüne dönüştürmek istiyorum, böylece delphi'de işleyebilirim.

Xml'den metne dönüştürmenin bir yolu var mı?

cevap

33

Basit döküm yeterli olacaktır:

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

Veya Unicode olmayan için:

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

Bir 'text' veri türüne açıkça dönüştürmek olamaz.

Dönüştürülen verilerin sütunla aynı ada sahip olduğundan emin olmak için as XMLCol ekledim. Elbette buna ihtiyacın yok.

DÜZENLEME:

Birkaç bağlantılar. Buna rağmen, text yerine nvarchar (max) kullanmanız tavsiye edilir. Microsoft, gelecekte bu tür sürümlerde bu tür kullanımdan vazgeçeceğini söyledi. (Maks) gerektiğini nvarchar 2GB kullanılabilir sunmak için:

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

hatırlamak böylece, temiz kolay varchar ile ilgili sorun, xml için geçerli olmayan x bayt sınırıdır. – none

+2

Hangi SQL sürümünü kullanıyorsunuz. nvarchar (max) size 2GB'a kadar teklif vermelidir. –

+0

Hızlı aramadan sonra, varchar (5000) ve varchar (maks) – none

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

Bu benim normalde ne olduğunu doğru karışıklık zor :) – Squazz