Aktualizacje oparte na zapytaniach
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Różne | PL / SQL | SQL | RAC | WebLogic | Linux
Strona główna „Artykuły” Różne „tutaj
Ten artykuł opisuje, jak można zaktualizować tabelę przy użyciu danych z innej tabeli.
- Konfiguracja
- Metoda podzapytania
- Metoda widoku w wierszu
- Metoda instrukcji MERGE
Powiązane artykuły.
- Instrukcja MERGE
Konfiguracja
Tabela DEST_TAB zawiera 10 000 wierszy. SOURCE_TAB zawiera 5000 wierszy, z których każdy ma pasującą wartość kluczową z wierszem z tabeli DEST_TAB, ale inne dane w CODE i DESCRIPTION kolumny.
W tym momencie nie widzimy żadnej wartości w DESCRIPTION w tabeli DEST_TAB zawiera słowo „Updated”.
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
Celem jest aktualizacja wiersze w tabeli DEST_TAB z danymi z tabeli SOURCE_TAB.
Metoda podzapytania
T Pierwszą opcją jest aktualizacja tabeli DEST_TAB przy użyciu podzapytania w celu pobrania poprawnych danych z tabeli SOURCE_TAB. Zwróć uwagę na predykat EXISTS wykluczający wiersze z tabeli DEST_TAB bez pasującego wiersza w SOURCE_TAB stół. Bez tego niedopasowane wiersze będą miały ustawione wartości NULL.
Plan wykonania dla bieżącego wolumenu danych jest pokazany poniżej.
Jeśli obciążenie jest wystarczająco duże, a serwer może poradzić sobie z dodatkowym obciążeniem, można użyć wskazówki PARALLEL, aby uruchomić to równolegle.
Metoda widoku w wierszu
Druga opcja polega na połączeniu dwóch tabel jako widoku inline i na tym oparciu aktualizacji.
Plan wykonania dla bieżącego wolumenu danych jest pokazany poniżej.
Jeśli obciążenie jest wystarczająco duże i serwer może poradzić sobie z dodatkowym obciążeniem, można użyć wskazówki PARALLEL, aby uruchomić to równolegle.
Liczbę zaktualizowanych wierszy można zmienić, dodając klauzula WHERE do widoku wbudowanego lub głównej instrukcji aktualizacji.
- Instrukcja MERGE
Mam nadzieję, że pomaga. Pozdrawiam Tim …
Powrót na górę