Oracle データベースでの UPSERT 操作
UPSERT (テーブルへの更新または挿入) 操作は、一致するデータを持つ行が存在するかどうかに基づいて、既存の行を変更したり、テーブルに新しい行を追加したりする便利な方法を提供します。
Oracle Database における UPSERT の課題
他のデータベースとは異なり、Oracle は専用の UPSERT ステートメントを提供しません。この問題を解決するには、複数のデータ ソースからのデータを結合するための強力なメカニズムである MERGE ステートメントを使用します。
MERGE を使用して Oracle UPSERT 操作を実行します
MERGE ステートメントは 2 つのテーブルを操作します。1 つはターゲット テーブル (ここでは mergetest) として、もう 1 つはプレースホルダー (DUAL) として操作します。このテクノロジーを使用すると、UPSERT 関数を実装できます。
実装例
次のコードを考えてみましょう:
create or replace procedure ups(xa number) as begin merge into mergetest m using dual on (a = xa) when not matched then insert (a,b) values (xa,1) when matched then update set b = b+1; end ups; /
このプロシージャは、UPSERT 操作を実行する関数を定義します。
使用法:
call ups(10); call ups(10); call ups(20); select * from mergetest;
出力:
<code>A B ---------------------- ---------------------- 10 2 20 1</code>
結論
MERGE ステートメントを使用すると、Oracle で UPSERT 関数を効果的に実装でき、一致する行が存在するかどうかに基づいてテーブル内のデータを変更または挿入できるようになります。
以上がOracle DatabaseでUPSERT操作を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。