2011-01-05 14 views
18

en MS Sql hay tipos de datos que no son compatibles con delphi 7, el tipo de datos xml es un ejemplo.ms sql xml tipo de datos convertir a texto

Deseo convertir el tipo de datos XML a tipo de datos de Texto, para poder manejarlo en Delphi.

¿Hay alguna manera de convertir de xml a texto?

Respuesta

33

Un molde sencillo será suficiente:

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

O para no Unicode:

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

No se puede convertir explícitamente a un tipo de datos 'texto'.

He añadido as XMLCol para garantizar que los datos convertidos tengan el mismo nombre que la columna. No necesitas tener esto, por supuesto.

EDIT:

Unos enlaces. Se le recomienda usar nvarchar (max) en lugar de text independientemente. Microsoft ha dicho que depreciará estos tipos en versiones futuras. nvarchar (max) debería le ofrecen 2 GB:

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

el problema con varchar es el límite de x bytes, que no es el caso para xml. – none

+2

¿Qué versión de SQL estás usando? nvarchar (max) debería ofrecerle hasta 2GB. –

+0

después de una búsqueda rápida, existe una diferencia entre especificar varchar (5000) y varchar (max) – none

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

Esto es lo que hago normalmente, es tan limpio, fácil de recordar, difícil de desastre :) – Squazz

Cuestiones relacionadas