Oracle MERGE (Deutsch)

Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie die Oracle MERGE -Anweisung verwenden, um ein Update oder Einfügen durchzuführen Daten basieren auf einer bestimmten Bedingung.

Einführung in die Oracle MERGE-Anweisung

Die Oracle MERGE -Anweisung wählt Daten aus einer oder mehreren Quelltabellen aus und aktualisiert oder fügt es in eine Zieltabelle ein. Mit der Anweisung MERGE können Sie eine Bedingung angeben, um zu bestimmen, ob Daten aus der Zieltabelle aktualisiert oder in die Zieltabelle eingefügt werden sollen.

Im Folgenden wird die Syntax von Oracle veranschaulicht MERGE -Anweisung:

Lassen Sie uns die MERGE -Anweisung im Detail untersuchen:

Geben Sie zunächst an die Zieltabelle (target_table), die Sie aktualisieren oder in die INTO -Klausel einfügen möchten.

Zweitens: Geben Sie die Datenquelle (source_table) an, die aktualisiert oder in die Klausel USING eingefügt werden soll.

Geben Sie drittens an Die Suchbedingung, unter der die Zusammenführungsoperation entweder aktualisiert oder in die ON -Klausel eingefügt wird.

Für jede Zeile in der Zieltabelle wertet Oracle die Suchbedingung aus:

  • Wenn das Ergebnis wahr ist, aktualisiert Oracle die Zeile mit den entsprechenden Daten aus der Quelltabelle.
  • Falls das Ergebnis für a falsch ist y Zeilen, dann fügt Oracle die entsprechende Zeile aus der Quelltabelle in die Zieltabelle ein.

Die Anweisung MERGE ist praktisch, wenn Sie kombinieren möchten mehrere INSERT, UPDATE und DELETE Anweisungen in einer einzigen Operation.

Da die MERGE eine deterministische Anweisung ist, können Sie dieselbe Zeile der Zieltabelle nicht mehrmals in derselben MERGE -Anweisung aktualisieren

Sie können der MATCHED -Klausel eine optionale DELETE WHERE -Klausel hinzufügen, um sie nach einem Zusammenführungsvorgang zu bereinigen. Die Klausel DELETE löscht nur die Zeilen in der Zieltabelle, die sowohl mit ON als auch mit DELETE WHERE übereinstimmen Klauseln.

Oracle MERGE-Voraussetzungen

Um die Anweisung MERGE auszuführen, müssen Sie über die Anweisung INSERT und UPDATE Objektberechtigungen für die Quelltabellen. Wenn Sie die Klausel DELETE verwenden, müssen Sie auch über die Objektberechtigung DELETE für die Zieltabelle verfügen.

Oracle MERGE-Beispiel

Angenommen, wir haben zwei Tabellen: members und member_staging.

Wir Fügen Sie eine neue Zeile in die Tabelle members ein, wenn wir ein neues Mitglied haben. Anschließend werden die Daten aus der Tabelle members mit den Daten der Tabelle member_staging zusammengeführt.

Die folgenden Anweisungen Erstellen Sie die Tabellen members und member_staging:

Die folgenden INSERT Anweisungen fügen Beispieldaten in die Tabellen members und member_staging ein:

Beim Aktualisieren von Daten aus der Tabelle members Tabelle zu member_staging Tabelle, sollten wir die folgenden Aktionen ausführen:

  • Wir aktualisieren die Zeilen mit der Mitglieds-ID 1, 3 , 4 und 6, weil der Rang oder der Nachname dieser Mitglieder in diesen Tabellen unterschiedlich sind.
  • Wir fügen die Zeilen mit den Mitglieds-IDs 7 bis 10 ein, weil diese Zeilen in der -Tabelle, jedoch nicht in der Tabelle member_staging.

Insgesamt sollten 8 Zeilen zusammengeführt werden.

Folgendes ing ist die Anweisung MERGE, die alle diese Aktionen auf einmal ausführt.

Die Anweisung merge vergleicht jede Zeile in der members -Tabelle mit jeder Zeile in der Tabelle member_staging basierend auf den Werten in den Spalten member_id (siehe ON -Klausel oben).

Wenn die Werte in den Spalten member_id beider Tabellen gleich sind, wird die MERGE aktualisiert den Vor- und Nachnamen sowie den Rang von der Tabelle members auf die Tabelle member_staging nur, wenn die Werte von first Name, Nachname oder Rangspalten beider Tabellen sind unterschiedlich.

Andernfalls wird die Zeile aus der Tabelle members in die Tabelle -Tabelle.

Oracle hat 8 Zeilen zurückgegeben, die wie erwartet zusammengeführt wurden.

In diesem Lernprogramm haben Sie gelernt, wie Sie Oracle MERGE Anweisung zum Aktualisieren oder Einfügen von Daten basierend auf einer bestimmten Bedingung.

  • War dieses Tutorial hilfreich?
  • JaNein

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.