ms sql xml data type convert to text
Asked Answered
A

3

40

in MS Sql there are data types that are not supported by delphi 7, the xml datatype is one example.

I wish to convert the XML datatype to Text datatype, so that i could handle it in delphi.

Is there a way to convert from xml to text?

Alvy answered 5/1, 2011 at 15:32 Comment(0)
T
77

A simple cast will suffice:

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

Or for non-unicode:

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

You can't convert explicitly to a 'text' data type.

I've added the as XMLCol to ensure that the converted data has the the same name as the column. You needn't have this, of course.

EDIT:

A few links. You are encouraged to use nvarchar(max) instead of text regardless. Microsoft have said they will be deprecating these types in future releases. nvarchar(max) ought to offer you 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

Tertullian answered 5/1, 2011 at 15:40 Comment(4)
the problem with varchar is the limit of x bytes, which is not the case for xml.Alvy
Which version of SQL Are you using. nvarchar(max) should offer you up to 2GB.Tertullian
after a quick search , there is a difference between specifying varchar(5000) and varchar(max)Alvy
Neither CAST() or CONVERT() will properly unescape the xml. The handling of converting to a NULL when there's no matching tag on a nodeset query function also fails.Nacreous
B
11
SELECT CAST(YourXMLColumn as nvarchar(max))
    FROM YourTable
Browband answered 5/1, 2011 at 15:36 Comment(1)
This is what I normally do, it's so clean, easy to remember, hard to mess up :)Gynarchy
J
0

I just tried the follwing solution and yes, you do need the as XMLCol

select cast(XMLCol as nvarchar(max)) as XMLCol 
Jill answered 20/11, 2019 at 0:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.