Oracle MERGE (Polski)

Podsumowanie: w tym samouczku nauczysz się, jak używać instrukcji Oracle MERGE w celu wykonania aktualizacji lub wstawienia dane na podstawie określonego warunku.

Wprowadzenie do instrukcji Oracle MERGE

Instrukcja Oracle MERGE wybiera dane z co najmniej jednej tabeli źródłowej i aktualizuje lub wstawia go do tabeli docelowej. Instrukcja MERGE umożliwia określenie warunku określającego, czy należy aktualizować dane z tabeli docelowej, czy też wstawiać je do tabeli docelowej.

Poniżej przedstawiono składnię Oracle MERGE instrukcja:

Przeanalizujmy szczegółowo instrukcję MERGE:

Najpierw określ tabela docelowa (target_table), którą chcesz zaktualizować lub wstawić do klauzuli INTO.

Po drugie, określ źródło danych (source_table) do aktualizacji lub wstawienia w klauzuli USING.

Po trzecie, określ warunek wyszukiwania, na podstawie którego operacja scalania aktualizuje lub wstawia klauzulę ON.

Dla każdego wiersza w tabeli docelowej Oracle ocenia warunek wyszukiwania:

  • Jeśli wynik jest prawdziwy, Oracle aktualizuje wiersz odpowiednimi danymi z tabeli źródłowej.
  • Jeśli wynik jest fałszywy dla y wierszy, a następnie Oracle wstawia odpowiedni wiersz z tabeli źródłowej do tabeli docelowej.

Instrukcja MERGE staje się wygodna, gdy chcesz połączyć wiele instrukcji INSERT, UPDATE i DELETE w jednej operacji.

Ponieważ MERGE jest instrukcją deterministyczną, nie można wielokrotnie aktualizować tego samego wiersza tabeli docelowej w tej samej instrukcji MERGE .

Możesz dodać opcjonalną klauzulę DELETE WHERE do klauzuli MATCHED, aby posprzątać po operacji scalania. Klauzula DELETE usuwa tylko wiersze w tabeli docelowej, które pasują zarówno do ON, jak i DELETE WHERE klauzul.

Wymagania wstępne Oracle MERGE

Aby wykonać instrukcję MERGE, musisz mieć INSERT i UPDATE uprawnienia do obiektów w tabelach źródłowych. Jeśli używasz klauzuli DELETE, musisz mieć także uprawnienie do obiektu DELETE w tabeli docelowej.

Oracle Przykład MERGE

Załóżmy, że mamy dwie tabele: members i member_staging.

Mamy wstaw nowy wiersz do tabeli members, ilekroć mamy nowego członka. Następnie dane z tabeli members są łączone z danymi z tabeli member_staging.

Poniższe instrukcje utwórz tabele members i member_staging:

Następujące INSERT instrukcje wstawiają przykładowe dane do tabel members i member_staging:

Podczas aktualizowania danych z members do tabeli member_staging, powinniśmy wykonać następujące czynności:

  • Aktualizujemy wiersze o identyfikator elementu 1, 3 , 4 i 6, ponieważ ranga lub nazwisko tych członków w tych tabelach są różne.
  • Wstawiamy wiersze o identyfikatorze elementu od 7 do 10, ponieważ te wiersze istnieją w members, ale nie w tabeli member_staging.

W sumie powinno zostać scalonych 8 wierszy.

Poniżej ing to instrukcja MERGE, która wykonuje wszystkie te czynności za jednym razem.

Instrukcja merge porównuje każdy wiersz w members z każdym wierszem w tabeli member_staging na podstawie wartości w kolumnach member_id (patrz ON powyżej).

Jeśli wartości w kolumnach member_id obu tabel są równe, MERGE aktualizuje imię, nazwisko i pozycję z tabeli members do tabeli member_staging tylko wtedy, gdy wartości pierwszego kolumny nazwy, nazwiska lub rangi obu tabel są różne.

W przeciwnym razie wstawia wiersz z tabeli members do member_staging table.

Oracle zwróciło 8 wierszy scalonych zgodnie z oczekiwaniami.

W tym samouczku nauczyłeś się, jak używać Oracle MERGE, aby zaktualizować lub wstawić dane na podstawie określonego warunku.

  • Czy ten samouczek był pomocny?
  • Tak Nie

Leave a Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *