【发布时间】:2018-05-28 08:59:00
【问题描述】:
我在从 XML 列检索字符串数据时遇到问题。
我在 xml 中有一个包含大量数据的节点。如果我尝试使用value 方法或query 获取它,它会给出空字符串(即在xml 中等于NULL)。
在调试时我知道,value方法只有在字符小于或等于43679时才检索数据。
我阅读了与 43679 图相关的所有 SO 问题,这是从 SSMS 网格复制时 SSMS 中的一个错误。但这里的问题与 SSMS 无关。即使是从 .Net 应用程序调用的 SP 也遇到了同样的问题。
例如:
Declare @XmlStr XML;
select @XmlStr=
'<Main>
<Node1>/9j/4gIcSUNDX1BST0ZJTEUAAQEA.. 50000+Charcters ...</Node1>
</Main>';
SELECT @XmlStr.value('(/Main/Node1)[1]','varchar(max)') ;
如果 Node1 包含以下 43679 个字符,则它会给出输出。 有什么解决办法吗?还是我错过了什么??
我使用的是 SQL Server 2008R2
【问题讨论】:
标签: sql-server xml sql-server-2008 encoding base64