Oracle MERGE (日本語)

概要:このチュートリアルでは、Oracle MERGEステートメントを使用して更新または挿入を実行する方法を学習します。指定された条件に基づくデータ。

OracleMERGEステートメントの概要

Oracle MERGEステートメントは、1つ以上のソーステーブルからデータを選択します。更新するか、ターゲットテーブルに挿入します。 MERGEステートメントを使用すると、ターゲットテーブルからデータを更新するかターゲットテーブルにデータを挿入するかを決定する条件を指定できます。

以下に、Oracleの構文を示します。 MERGEステートメント:

MERGEステートメントを詳しく調べてみましょう:

まず、更新またはINTO句に挿入するターゲットテーブル(target_table)。

次に、更新または挿入するデータのソース(source_table)をUSING句で指定します。

3番目に指定します。マージ操作が更新されるか、ON句に挿入される検索条件。

ターゲットテーブルの各行について、Oracleは検索条件を評価します。

  • 結果がtrueの場合、Oracleはソーステーブルの対応するデータで行を更新します。
  • 結果がfalseの場合y行の場合、Oracleは対応する行をソーステーブルからターゲットテーブルに挿入します。

MERGEステートメントは、組み合わせる場合に便利です。 1回の操作で複数のINSERTUPDATE、およびDELETEステートメント。

MERGEは決定論的ステートメントであるため、同じMERGEステートメントでターゲットテーブルの同じ行を複数回更新することはできません。 。

オプションのDELETE WHERE句をMATCHED句に追加して、マージ操作後にクリーンアップできます。 DELETE句は、ONDELETE WHEREの両方に一致するターゲットテーブルの行のみを削除します。

OracleMERGEの前提条件

MERGEステートメントを実行するには、INSERTおよびUPDATEオブジェクト権限。 DELETE句を使用する場合は、ターゲットテーブルに対するDELETEオブジェクト権限も必要です。

Oracle MERGEの例

membersmember_stagingの2つのテーブルがあるとします。

新しいメンバーがあるときはいつでも、membersテーブルに新しい行を挿入します。次に、membersテーブルのデータがmember_stagingテーブルのデータとマージされます。

次のステートメントmembersテーブルとmember_stagingテーブルを作成します。

次のINSERTステートメントは、サンプルデータをmembersテーブルとmember_stagingテーブルに挿入します。

テーブルをmember_stagingテーブルにするには、次のアクションを実行する必要があります。

  • メンバーID1、3で行を更新します。 、4、および6は、これらのテーブルのこれらのメンバーのランクまたは姓が異なるためです。
  • メンバーIDが7〜10の行を挿入するのは、これらの行がテーブルですが、member_stagingテーブルにはありません。

合計8行をマージする必要があります。

フォローingは、これらすべてのアクションを一度に実行するMERGEステートメントです。

mergeステートメントは、members<の各行を比較します。 member_id列の値に基づいたmember_stagingテーブルの各行を持つ/ div>テーブル(上記の句)。

両方のテーブルのmember_id列の値が等しい場合、MERGEステートメントは、firstの値が次の場合にのみ、membersテーブルからmember_stagingテーブルに名、姓、およびランクを更新します。両方のテーブルの名前、姓、またはランク列が異なります。

それ以外の場合は、membersテーブルの行をテーブル。

Oracleは期待どおりにマージされた8行を返しました。

このチュートリアルでは、Oracle MERGEデータを更新または挿入するステートメント指定された条件に基づいています。

  • このチュートリアルは役に立ちましたか?
  • はいいいえ

Leave a Reply

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です