とてつもなく長い xml 行があり、800000 文字を超えています。「クライアント」は「サーバー」でもあります。OSはwindows2k8x64です。データベースには、クライアントと同様に十分なメモリがあります。
問題は、魔法の数の文字数 (正確に 43679 xml 文字) に達すると、行が '' と思われるものを返すことです。長さを計算するときに、SQLサーバーによって空白が明らかに取り除かれるため、それらを「xml文字」と呼びます-これは、このSQLで行います: len(convert(varchar(max), xsl)) 数値が43679である理由も私を困惑させます...
この問題を抱えている人はいますか?私は実際にWindows 2k3と別のWindows 2k8サーバーを備えた同じサーバーに接続しましたが、これ以外のマシン(実際のサーバー自体)には問題はありません。
また、クエリの結果 -> sql server -> グリッドへの結果を見つけ、xml の制限を「無制限」に設定しましたが、まだ「機能」していないようです... (機能するものでは、これが 2mb に設定されていますご参考までに)
すべてのコメントに感謝します - 私は何でも試してみます...それは何も動作を妨げていません - 私はそれがこの1つのクライアントだけだと確信していますが、それは私を夢中にさせています! :)
更新: 参考までに - 問題は変換ではありません - 実際に変換したくありません。この例で 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」が表示されます。しかし、私にとっては...この奇妙な魔法の数字を渡すと、それが停止し、単に空白に見えます.