我有一个非常长的 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供参考)
感谢您的任何和所有评论 - 我会尝试任何事情......它不会阻止任何工作 - 我确信这只是一个客户,但它让我发疯了!:)
更新:仅供参考-问题不在于转换-我实际上不想转换它。我在此示例中使用 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”。但是对我来说……一旦我通过了这个奇怪的魔术数字,它就会停止这样做,并且看起来很空白。