How do I convert an XML field with more than 8000 characters into a string?

Viewed 20508

I have a SQL Server column of type XML containing some records with more than 8000 characters.

I would like to convert this column into a varchar.

I am not concerned about truncation (the first 8000 characters is fine).

However, whenever I try CONVERT(varchar(8000), Content) I get an error:

Target string size is too small to represent the XML instance

When I try CONVERT(varchar(MAX), Content) I get an error:

String or binary data would be truncated

When I try CONVERT(varchar(20000), Content) I get an error:

The size (20000) given to the type 'varchar' exceeds the maximum allowed for any data type (8000)

When I try CONVERT(text, Content) I get an error:

Explicit conversion from data type xml to text is not allowed

Is there a workaround?

3 Answers
Related