3

varchar に変換したい XML を返すクエリがあります。私のクエリは 93,643 文字の XML を返します。xml の結果を varchar としてキャストしようとすると、結果セットをテキスト エディターにコピーすると 43,679 文字しか表示されません。len(xmlString) を実行すると、93,643 文字になります。

この投稿から、varchar(max) には最大 2^31 文字、1 バイト = 1 文字を使用できることがわかっていますが、データが切り捨てられているようです。

XML 文字は 1 バイトを超えてカウントされますか? xml の結果からすべてのデータを選択できないのはなぜですか?

CAST((SELECT COLUMNS FROM TABLE FOR XML PATH('Name'), TYPE) AS VARCHAR(MAX)
4

2 に答える 2

0

これは、Managementstudioの単なる制限です。
より大きなテーブルでのtestqueryを使用すると、43,679文字が記述されます。
同じクエリが、ADOを介してアプリケーションで267089文字を配信します。

于 2012-12-19T18:08:10.667 に答える
0

xml データを varchar(max) にキャストする必要がある理由はわかりませんが、すべてのデータをコピーするだけの場合は、まったくキャストしないでください。この場合、結果ウィンドウには、クリック可能な値を持つ 1 つのセルが表示されます (Web リンクのように)。それをクリックすると、すべてのデータが新しいウィンドウで開かれ、ファイルのように保存するか、単にコピーすることができます。それが役に立てば幸い。

于 2012-12-19T18:39:02.123 に答える