2011-01-05 46 views
18

MS Sql中有數據類型不被delphi 7支持,xml數據類型就是一個例子。ms sql xml數據類型轉換爲文本

我希望將XML數據類型轉換爲文本數據類型,以便我可以在delphi中處理它。

有沒有辦法從xml轉換爲文本?

回答

33

一個簡單的投就足夠了:

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

或者非Unicode:

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

不能明確地轉換爲 '文本' 的數據類型。

我已經添加了as XMLCol以確保轉換後的數據與列的名稱相同。當然你不需要這個。

編輯:

幾個環節。無論如何,鼓勵您使用nvarchar(max)而不是text。微軟表示他們將在未來的版本中棄用這些類型。爲nvarchar(最大)應該爲您提供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

varchar的問題是x字節的限制,對於xml而言不是這種情況。 – none 2011-01-05 15:53:49

+2

您使用的是哪個版本的SQL。 nvarchar(最大)應該爲您提供高達2GB。 – 2011-01-05 16:02:58

+0

快速搜索後,指定varchar(5000)和varchar(max) – none 2011-01-05 19:31:23

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

這是我常做的,它是如此乾淨,易記,難惹了:) – Squazz 2016-04-14 14:01:35