【发布时间】:2009-01-08 02:18:28
【问题描述】:
我有一个非常长的 xml 行,它有 > 800000 个字符。 “客户端”也是“服务器”。操作系统是 windows 2k8 x64。数据库和客户端一样有足够的内存。
问题是,一旦我达到了一些神奇的字符数——恰好是 43679 个 xml 字符——该行返回的 APPEARS 是 ''。我称它们为“xml chars”,因为在计算长度时,sql server 显然会删除任何空格 - 我用这个 sql 执行此操作: len(convert(varchar(max), xsl)) 为什么数字是 43679 也让我感到困惑...
有人有这个问题吗?实际上,我已经使用 windows 2k3 和另一台 windows 2k8 服务器连接到同一台服务器,除了这台机器(实际服务器本身)之外的任何其他机器上都没有问题。
我还找到了查询结果 -> sql server -> results to grid 并将 xml 的限制设置为“无限”,但它似乎仍然没有“工作”......(那些工作的有这个设置为 2mb(仅供参考)
感谢所有 cmets - 我会尝试任何事情......它不会阻止任何工作 - 我确定这只是一个客户,但它让我发疯了! :)
更新:仅供参考 - 问题不在于转换 - 我实际上不想转换它。我在此示例中使用 convert 的唯一原因是使用 len(len 不适用于 xml 数据类型),因此我可以找到 xml 的“长度”。
问题是这样的……
INSERT INTO someTableForXml(theXml)
VALUES ('<this><is><some><really>long xml</really></some></is></this>')
现在复制并粘贴它,直到您有大约 100,000 行 xml 并插入它...当我选择行时使用:
SELECT * FROM someTableForXml
我返回 1 行,在“网格”中,我得到一个很好的 xml 小超链接,当我单击它时,会在新选项卡中显示“完整 xml”。但是对我来说......一旦我通过了这个奇怪的魔法数字,它就会停止这样做,并且看起来只是空白。
【问题讨论】:
标签: xml sql-server-2005 ssms