問題タブ [xml-dml]
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.
sql-server - ワイルドカードを使用した T-SQL xquery .modify メソッド
私はSQL Server 2014で作業しています。処理を行うストアドプロシージャを作成し、最後に最終的なクエリ出力を取得してXMLとしてフォーマットします。プロシージャのロジックの性質上、最終的な XML 出力からノードを削除する必要がある場合があります。XML 出力のサンプルを次に示します (簡潔にするために、ルート ノードは含めていません。私の質問に答える必要がないことを願っています)。
この手順では、上記の XML 構造を調べて、存在しないはずのノードを削除するコードを使用しています。これは、クエリ出力を微調整するよりも xml を変更する方が簡単だからです。そのコードのサンプルを次に示します。
最後のコマンドは、どうすればうまくいくかわかりません。要素「DrugConceptType」が文字列「RxNorm」で始まるインスタンスを探すだけで済みます。文字列には複数のバージョンが存在する可能性があるためです。
私はグーグルで調べて StackOverFlowed しましたが、おそらくこの分野での経験が浅かったために、正しく質問できませんでした。
「RxNorm」の後にワイルドカードを使用するために、上記の最後の .modify ステートメントを書き直す比較的簡単な方法はありますか?
sql-server - MSSQL 2012: 変数を使用して XML 属性を削除する
こんにちは、
TSQL 変数を使用して XML 属性を削除したいと考えています。これは最小限の作業例 (TSQL コード) です。
これにより、目的の出力が得られます。すべての属性「desc」が削除されています。
ただし、TSQL 変数を定義したい
これを XQuery の変更操作に渡すにはどうすればよいですか? XML DML 内でsql:variable("@attr")を使用できますが、それを使用して属性を指定するにはどうすればよいですか?
助けてくれてありがとう!
sql-server - 別のリンク テーブルからの XML フラグメントを使用した T-SQL XML 更新
外部キーによってリンクされた別のテーブルからの xml フラグメントを使用して、テーブル内の XML 列を更新 (具体的には .modify('insert into..')) する方法を探しています。
たとえば、私のテーブル構造は以下のようになります (簡略化):
- 各テーブルのフィールド 1 ~ 5 は無視できます。それらの唯一の目的は、フィールド Xx を説明することです。
- 各テーブルのフィールド Xx は XML として定義されており、タグのテーブル名内にテーブルのフィールドを含む XML フラグメントが事前に入力されています。XML フラグメントは、このリストの後に示されています。
- テーブル B とテーブル C には、テーブル A にリンクする外部キー FK_A があります。
ここで、達成する必要があることの前に、Xx フィールドのサンプル値に進みます。
ここでの問題は、すべての XB と XC を最初 (または最後) として対応する XA に挿入して、テーブル A を更新するにはどうすればよいかということです。テーブル全体を更新する単一の操作を好みます。
操作後、XA は次のようになります。
これまでに何を試しましたか?
これまでのところ、私の最善のリードは、分割とルールのアプローチ (2 つの部分からなるソリューションであり、うまくいきません) でした。
編集:
コピーペーストするテキスト値を指定していないことをお詫びします。どうぞ。
これにより、テーブル B とテーブル C の最初の XML フラグメントのみを使用して XML が更新されます。
更新: この質問に出くわす可能性のある人は、@Shnugo の回答とマークされた回答をご覧ください。どちらのアプローチも完璧です。彼が最初に返信したという理由だけで、@ gofr1 の解決策を回答としてマークしました。将来のクエスト ハンターのもう 1 つの考慮事項は、CTE が好きかサブセレクトが好きかということです (Shnugo が指摘したように)。
sql-server - XML-DML を使用した既存のインスタンスでの XML ノードの動的挿入位置
SQL Server (2012) の既存の xml インスタンス内に xml ノードを動的に挿入できるかどうかについてのドキュメントを見つけることができませんでした。条件値を挿入または置換できることは知っていますが、挿入の場所をいくつかの条件に基づいて動的に実行できるかどうかについてのドキュメントはないようです。たとえば、次の XML-DML 呼び出しがあるとします。
キーワードの後にリストされているノードafter
が条件付きである変更は有効な構文でしょうか? 以下は、私が言及しているものの例です。
IF..ELSE
XML DML ステートメントの外側にステートメントを持つ場所を動的に選択する唯一の方法ですか、それとも私の例の XML-DML は有効ですか?
XML の例を編集します。
構造が理想的ではないことは承知しています。である必要があります<Contacts><Contact Type="PRIMARY" Id="1234">...</Contact>...</Contacts>
が、DML ステートメント内で動的な挿入場所が可能かどうかを確認したかったのです。この質問では、1 回限りの更新であるため、カーソルの使用は問題ありません。
xml - XQuery を使用して XML 変数の属性値を更新するにはどうすればよいですか?
変数に含まれる XML の 1 つの属性を更新しようとしています:
の添字の有無にかかわらずそれを試しました@AddressLine1[1]
。
これはエラーをスローします:
メッセージ 2337、レベル 16、状態 1、行 8
XQuery [modify()]: 'replace' のターゲットは最大で 1 つのノードでなければなりません。'element(abc{ http://abcsystems.com/ }:PostalAddress,xdtが見つかりました:型なし) *'
PostalAddress
XML 全体で要素は 1 つだけです。エラーは何を教えてくれますか?
sql - 複数のノードを除外して、それらの除外の 1 つが XML DML を使用してその属性を再配置する方法は?
これは、この投稿された質問<pos>
からの参照です。ノード内の属性の値を再配置しようとして<est_mat>
いるため、の最初のノードに<est_mat>
は があり<pos>10</pos>
、次に 2 番目の<est_mat>
ノードには<pos>20</pos>
、というように続きます。言及された投稿された参照からのユーザーの1人の助けから、このクエリがあります。したがって、次の xml 構造を想定します。
そしてこのクエリ:
<pos>
上記で説明したように、その属性を順序付けて構造を再度生成するにはどうすればよいですか?
現時点では、クエリは値を変更せずに同じ xml 構造をスローします<pos>