問題タブ [sql-merge]

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 に答える
2426 参照

sql - ソーステーブルを参照する削除条件でOracleのテーブルをマージする

次の質問については、答えは C であるべきだと言われています。しかし、NOT MATCHED ブロックはすべての一致しないレコードをターゲット テーブルに挿入するため、正しい答えは答え D だと思います。誰でもこれを説明できますか?ありがとうございました。

Q)別紙を見て、ORDERS_MASTER および MONTHLY_ORDERS テーブルのデータを調べてください。

ここに画像の説明を入力

次の MERGE ステートメントを評価します。

上記のステートメントの結果はどうなりますか?

A. ORDERS_MASTER テーブルには、ORDER_ID 1 と 2 が含まれます。

B. ORDERS_MASTER テーブルには、ORDER_ID 1、2、および 3 が含まれます。

C. ORDERS_MASTER テーブルには、ORDER_ID 1、2、および 4 が含まれます。

D. ORDERS_MASTER テーブルには、ORDER ID 1、2、3、および 4 が含まれます。

答え:C

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

sql - 異なるサーバー上にあるときに他のテーブルから SQL テーブルを更新する方法

次のコマンドを実行して、別のサーバー インスタンスを含めました。

今、これを使用してこれらのデータベースを同期しようとしています:

これにより、次のエラーが発生しました。

FROM 句のオブジェクト "LocalDB.dbo.tableName" と "Server.ServerDB.dbo.tableName" には、公開されている同じ名前があります。相関名を使用してそれらを区別します。

それで、それをいじった後、私はこれのさまざまな表現を試みました:

しかし、それらはすべて、ある種のエラーの表現を私に与えてくれます:

マルチパート識別子 "Server.ServerDB.dbo.tableName.allrows" をバインドできませんでした。

誰かが私が見逃しているものを見つけることができますか?

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

java - Oracle SQL Merge はステートメントに対して実行されません

私は4つの列を持つテーブルを持っています.これはどのように見えるかです. 私はそれを T_BPR_KPI_MONTHLY_VALUES と呼びます

各 KPI は測定値を表し、それぞれに T_BPR_KPI_DY という別のテーブルに保存される毎日の値があります。私の目標は、各 KPI の月ごとの値を計算して保存することです。

特定の日に、一部の KPI の毎日の値がまだ欠落している可能性があります。毎月の値を正確に計算するには、データベース内の既存の値を置き換え、将来の月と年に新しい etry を挿入できる必要があります。

このタスクには、Oracle SQL マージ操作が適していると思いました。アイデアは、エントリが既に存在するかどうかを確認し、存在する場合はその値を更新し、存在しない場合は新しい値を挿入することです。

これはクエリがどのように見えるかです

オンザフライで平均月次値を計算することは悪い考えではないと思ったので、ご覧のとおり、特定の kpi の平均月次値のみを計算する別の選択クエリがあります。これが最善の解決策であるかどうかはわかりませんが、このクエリを oracle sql 開発者ツールで実行するとうまくいきます。ただし、アプリから実行しようとすると機能しません。

メソッドはこんな感じ

ターミナルでは、最初のマージ sql のみを出力します。操作を終了することも、例外をスローすることもありません。どういうわけかブロックされ、データベースでも何も起こりません。マージ クエリが正しくないか、ステートメント オブジェクトでこの種の操作を実行できない可能性があります。誰かがこの問題のケースを確認できる場合は、助けてください。

事前にThx

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

sql - 2 つ以上の列を 1 つにマージする方法は?

最も効果的な方法で 2 つ以上の列のデータを 1 つの列にマージすることに関して、SQL の 1 つのタスクに実際の問題があります。

そして、このように3つのコメントを1つのコメント列にマージする必要があります

今、私はidとコメントの列があるテーブルに挿入して手動で行い、プライマリテーブルからデータを整理する必要があります。特に、マージしたいコメント列が少なくとも 8 つある場合は、非常に時間がかかります。

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

sql - 「クライアントからの SQL*Net メッセージ」イベントで待機している強制終了できない Oracle セッション

Oracle 11gR2 で、「クライアントからの SQL*Net メッセージ」イベントでMERGEハングするブロックされた (しかしアイドル状態の!) ステートメントを含む非常に興味深い状況に最近遭遇しました。カーソル: ピン S は X"イベントで待機します。Oracle Enterprise Manager では、次のことが確認できます。MERGE

ここに画像の説明を入力

上記のセッション ID 1204 は次のいずれでも強制終了できないため、この状況はさらに深刻になります。

DBA はオペレーティング システムのプロセスを強制終了できる場合もありますが、多くの場合、データベース全体を再起動する必要があります。幸いなことに、これまでのところ、テスト システム上でのみ使用されており、運用環境では使用されていません。

ノート:

これはおそらく、このかなり漠然とした質問で報告されているのと同様の問題であることを認識しています: Oracle の更新/挿入がスタックし、DB CPU が 100% で、同時実行性が高く、クライアントからの SQL*Net 待機メッセージ。回答として報告する明確な再現パスがあるので、もう一度報告します。