問題タブ [merge-statement]

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

oracle - SP の出力カーソルをテーブルに MERGE しますか?

出力をrefカーソルとして返すストアドプロシージャがあります。MERGE ステートメントを使用して、出力を別のテーブルに格納したいと考えています。私は問題を抱えていますが、すべてのステートメント (WITH、USING、MERGE など) を混ぜ合わせるのに問題があります。

誰か助けてくれませんか?ありがとう!

これは私が出力したいテーブルです(STOP_TIMEは意図的に省略されています):

これはSPです:

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

batch-file - Oracle Mergeステートメントでバッチコミットを指定するにはどうすればよいですか?

Oracle で MERGE ステートメントを使用して、何百万ものレコードの一括挿入/更新を行っています。他のオプションとして、FORALL を使用して BULKCOLLECT を使用してからコミットすることもできますが、ループを維持する必要があるため、この操作もパフォーマンスを低下させます。マージ操作全体の完了後にコミットすると、パフォーマンスが低下します。バッチコミットのような挿入/更新の 10000 行ごとにマージステートメント内にコミット頻度を設定する方法を知りたいです。

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

sql - SQLServer2008-マージスクリプトが機能しない

私が書いているこのマージスクリプトはコンパイルされておらず、正しい構文を持っていると思います。

エラー:

メッセージ156、レベル15、状態1、行1キーワード「into」の近くの構文が正しくありません。メッセージ102、レベル15、状態1、行2'ct_value'の近くの構文が正しくありません。

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

sql - ora_rowscnがUSING句にある場合のOracleMergeステートメントの動作

ORA-00904: invalid identifier恐ろしいエラーメッセージを表示するMERGEステートメントがあります。「無効な識別子」エラーの一般的な問題はここには存在しないことに注意してください。結合された列を更新しようとはしていません。また、列名のスペルを間違えたこともありません。句のステートメントでoracle疑似列を使用しようとしていますORA_ROWSCNUSINGSELECT

これらのサンプルテーブルを使用して、実行しようとします

USING句から疑似列ora_rowscnを削除すると、エラーメッセージが表示されなくなり、マージは正常に完了します。

代わりにクエリをVIEWに配置すると、ora_rowscnを正常に使用できます。

クエリのVIEWを作成せずにこれを行う方法はありますか?ETLプロセスの一部として多くのテーブルでこれを行う必要があり、複数のビューを作成する必要はありません。

編集:コメントのGlennの提案に基づいて、クエリをサブクエリに入れてみました:

このクエリでもORA-00904: invalid identifierエラーメッセージが表示されます。

これが問題を再現するためのDDLです。

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

sql-server - SQLServerMERGEステートメントとORDERBY句

ORDER BY句を使用して、大きなテーブルから上位10行を選択し、それが列値の1つである更新するMERGEステートメントを記述したいと思います。MERGEステートメントを使用するとTOP10行を選択できますが、ORDERBY句をどこにも配置できませんでした。

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

sql - 1つのテーブルと一連の値のみを持つOracle SQLマージステートメント

Spring JDBC と Oracle SQL を使用しています。

SpringJDBC クラス MapSqlParameterSource を使用して、マージしたいデータをマッピングしました。

ここで、merge ステートメントを使用してデータベース テーブルを更新/挿入したいと考えています。私が持っているのは、1 つのテーブルと、それにマージしたい一連のパラメーターだけです。

using キーワードの一時テーブルを何とか作成する必要がありますか、それとも別の方法がありますか? このようにマージするにはどうすればよいですか?

また、pr.id と pr.code という 2 つの一意のキーがあります。パラメーター:idnullの場合があります。これが発生した場合、pr.code が :code に一致することに基づいて update ステートメントに到達したいと考えています。アップデートに次の行が含まれていても機能しますか?

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

sql-server - マージを使用してビューでトリガーする代わりに、テーブルのデフォルト値を適用しません

挿入/更新のトリガーの代わりに使用する更新可能なビューがあります。そのトリガーは Merge を使用します。Merge ステートメントが基礎となる物理テーブルからデフォルトの制約を適用していないことがわかりましたが、マージのドキュメントではそうすべきであることが示唆されています。

次の例は、次のことを示しています。

INSTEAD OF INSERT トリガーでのデフォルト値の使用に似たようなことがあり、挿入された行を一時テーブルにコピーし、一時テーブルを変更して物理テーブルからデフォルトの制約を追加することで解決しました。これらの追加手順のパフォーマンスの問題を許容できるかどうかはわかりません。

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

stored-procedures - SQL Server2008R2のMERGEステートメント内に挿入されたレコードを更新しています

SQL Server2008R2ストアドプロシージャに次のコードがあります。そのストアドプロシージャでは、ある都市を家族や人と一緒に別の都市にコピーしています。

ここでは、ファミリのソースIDとターゲットIDをで維持してい@FamilyIdMapます。

左の列はコード行番号を示します。

次のような出力が得られます。

ソーステーブル

ターゲットテーブル(上記のコードを使用してソーステーブルからコピー)

上記の出力の問題は、が更新されないparentIDことです。出力を次のようにします。

期待されるターゲットテーブル

コードの10行目に問題があることはわかっています

ParentIDしかし、それを更新するには何に置き換える必要がありますか?前もって感謝します。

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

sql - 関連する行がソーステーブルに存在しない場合に更新します

私はこのようなマージステートメントを持っています:

これは正常に機能していますが、もう1つの条件があります。つまり、エントリがソースに存在しない場合に、宛先の行を更新する必要があります。

元。

ソース

行き先

ここで、のソースに行がないため、いくつかの計算を使用して宛先Dを変更する必要があります。Column 3ただし、me​​rgeは、の3つのオプションのみを提供し、delete行が一致したかどうかを示します。updateinsert

上記のステートメントでこの機能を実装するにはどうすればよいですか?

編集

以下の私のコメントで質問を編集します:

上記の例では、上記の例が実行されており、更新されて宛先テーブルBに挿入されています。ただし、ソーステーブルに存在しない場合でもA更新したいD