問題タブ [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.
sql - テーブルの挿入または更新
ファイルに 100k の ID のリストがあります。これらの ID を反復処理したい:
ごとに、が表にあるidかどうかを確認します。id
updated_dateそうであれば、そのフラグを更新します- そうでない場合は、新しいレコードを追加します
(id, updated_date)
MERGE節を調べて見つけました。欠点は、MERGEID がテーブルにある必要があることです。一時テーブルの作成は、必要な場合にのみ許可されています。
誰でも私を正しい方向に向けることができますか? コードではなく、データベースで実行できるスクリプトでなければなりません。
編集:一時テーブルが唯一のオプションである場合は、一時テーブルを使用できるようになりました。
sql - 列を指定しないOracle SQLマージ表
people100,000 レコード未満のテーブルがあり、次を使用してこのテーブルのバックアップを作成しました。
時間の経過とともにいくつかの新しいレコードをテーブルに追加peopleしましたが、最終的にはバックアップ テーブルのレコードを にマージしたいと考えていますpeople。残念ながらDROP、新しいレコードが失われるため、テーブルを単純化することはできません!
したがって、主キーに基づいてpeople、のレコードを使用してテーブル内のレコードを更新したいのですが、これを行う2つの方法が見つかりました。people_backupid
- テーブルをまとめてマージする
- ある種の派手な相関更新を使用する
すごい!ただし、これらの方法はどちらも使用SETし、更新する列を指定する必要があります。残念ながら、私は怠け者であり、の構造はpeople時間の経過とともに変化する可能性があり、CTASステートメントを更新する必要はありませんが、更新/マージ スクリプトを変更する必要があり、それは私にとって不必要な作業のように感じます。
列を指定せずに行全体をマージする方法はありますか? ここで、列を指定しないと、SQL で値を順番に挿入するように指示されることがわかります。ここでINSERT同じ方法を適用できますか?これは安全ですか?
注意: テーブルの構造はバックアップ間で変更されません
sql - Oracle マージ コマンド エラーでキーワードがありません
Oracleで2つのテーブルをマージしようとしていますが、使用しているクエリは
このクエリを実行するたびに、次のエラーが発生します。
ORA-00905 キーワードがありません。
誰でもこれで私を助けることができますか?
oracle - OracleのPL/SQLでrowtype変数を使用してMERGEしますか?
barタイプの変数を使用すると、 PL/SQL でfoo%ROWTYPE両方を実行できます。INSERTUPDATE
しかし、どうすればいいMERGEですか?次のアプローチでは、次のエラー メッセージが生成されます。
PL/SQL: ORA-00942: テーブルまたはビューが存在しません