問題タブ [for-xml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4056 参照

sql - XML用のSQLServer-不正な形式のxmlを防ぐためのエンコード結果

SQL SERVER2008R2を使用しています。FORXMLを使用して結果をXMLとして返すストアドプロシージャがあります。ストアドプロシージャは次のようになります。

これは期待どおりに機能し、次のようなXMLを生成します。

それが私が欲しいものです。しかし、私の懸念は、<や>などの特殊な文字がXMLにある場合、それが物事を台無しにしてXMLの形式を正しくしないのではないかということです。これを回避する方法はありますか?このストアドプロシージャを呼び出すコードでいくつかのチェックを実行して、それが有効なXMLであるかどうかを確認できますが、それが発生するまでには手遅れではないでしょうか。誰かが私がこれにどのように取り組むべきかについていくつかの提案をすることができれば、私はそれをいただければ幸いです。どうもありがとう。

0 投票する
1 に答える
14027 参照

sql - サブクエリでFORXMLを使用するにはどうすればよいですか?

以下のxmlを返したいのですが:

以下のコードを書きましたが、機能しません。

しかし、それは戻ります:

どのSQLを書くべきですか?

ありがとう、

0 投票する
1 に答える
335 参照

sql-server-2008 - SQLサーバーから取得したXMLスキーマの形式を変更する方法

質問があります:

このクエリはスキーマを返します。

しかし、私はこのようなものが欲しいです:

どうすればこれを達成できますか?

0 投票する
2 に答える
1614 参照

sql-server - SQL Server、「forxml」値を取得

これはかなり簡単だと思いますが、答えが見つからないようです。

SQL Server 2005でクエリを実行for xml, elementsし、最後に結果をXMLとして返します。

従来のASPページからクエリを実行しています。通常、列から結果を取得するには、を使用しますrs.Fields.Item("colName")。問題は、のfor xml場合、列名が。のような長い文字列であるということですXML_F52E2B61-...

やってみrs.Fields(0).valueました。これは、XMLではなく、疑問符で区切られたクエリの列の名前を奇妙に返しました。私の出力は次のとおりです。

Management Studioでクエリをテストしましたが、XMLは問題ないように見えます。この値を従来のASPに読み込む方法はありますか?

0 投票する
1 に答える
96 参照

sql - SQLでデータを連結する

次の SQL テーブル (データ付き) が与えられた場合

次のように連結された b の外部キー値を返したいと思います。

FOR XML PATHで(理論的には)可能であることはわかっていますが、わかりません

0 投票する
2 に答える
16003 参照

sql-server-2008 - FOR XML を使用した SQL Server EXPLICIT モード

EXPLICITSQL Server 2008 を使用しており、 mode withを使用してカスタム xml を生成しようとしていますFOR XML

次のクエリを持つ1対多の関係があります

ここに画像の説明を入力

私は人を親として、子としての住所が複数になる可能性があります。

次のクエリを書きました

次のように出力されます。xml が壊れており、入れ子になっている人がいて、コードに問題があることは確かです。

誰かが私を助けてくれませんか!!!

0 投票する
2 に答える
13727 参照

sql-server - FOR XML を Varchar(max) にキャストする

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

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

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

0 投票する
4 に答える
17247 参照

tsql - TSQL:FORXMLを使用した要素ごとに1行

大きな結果セット(最大数ギガバイト)を生成するSQLServer2005クエリがあります。

クエリを実行すると、多くの製品要素を含むドキュメントを含む単一の行が生成されます。

クエリを変更して、複数の製品要素を持つ単一のドキュメントを含む1つの行の結果セットではなく、単一の製品要素で構成される単一のドキュメントを持つ複数の行を返すようにします。

最後に、SQL Serverまたはアプリケーション全体の結果セット全体をメモリにロードせずに、IDataReaderを使用してC#からこのクエリを使用したいと思います。このシナリオを有効にするためにSQLに変更を加えることはできますか?

0 投票する
3 に答える
1730 参照

sql-server - SQL Server 'FOR XML' が値を「行」要素ノードに取得する

これは別の「for xml」の質問ですが、明示モードなしでこれを実行できるかどうかはわかりません。それができないなら、我慢するしかない。

以下は、現在私の選択ステートメントです:

これにより、次の xml が出力されます。

これは悪くありませんが、 name要素の値をfile要素の値として取得したいのです。これは非常に単純なタスクであり、明示モードなしで実行できると思いますが、そのようなことについてかなり頻繁に間違っています。

「/」マーカーを使用してみましたが、これは必要な効果がないようです (たとえば、SQL Server 2005 の XML ノード (XML 列内) を同じ行の別の列値で更新)。

編集: 必要な xml は次のようになります。

助けてくれてありがとう。