如何将超过8000个字符的XML字段转换为字符串?

Mat*_*ell 5 xml sql-server sql-server-2008

我有一个类型的SQL Server列XML包含一些超过8000个字符的记录.

我想将此列转换为varchar.

我不关心截断(前8000个字符很好).

但是,每当我尝试时,CONVERT(varchar(8000), Content)我都会收到错误:

目标字符串大小太小,无法表示XML实例

当我尝试时,CONVERT(varchar(MAX), Content)我收到一个错误:

字符串或二进制数据将被截断

当我尝试时,CONVERT(varchar(20000), Content)我收到一个错误:

给'varchar'类型的大小(20000)超过了任何数据类型允许的最大值(8000)

当我尝试时,CONVERT(text, Content)我收到一个错误:

不允许从数据类型xml到文本的显式转换

有解决方法吗?

Mik*_*son 11

演员varchar(max)应该工作得很好.你可能在别处有问题.如果尝试插入/更新具有数据类型的列,则会出现该错误varchar(8000).

  • 问题是将其传递给“hashbytes”函数,该函数的最大限制为 8000 :-) (2认同)