Opdateringer baseret på forespørgsler
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Diverse | PL / SQL | SQL | RAC | WebLogic | Linux
Hjem “Artikler” Diverse “Her
Denne artikel beskriver, hvordan en tabel kan opdateres ved hjælp af data fra en anden tabel.
- Opsætning
- Underforespørgselsmetode
- Integreret visningsmetode
- FUSION-erklæringsmetode
Relaterede artikler.
- FUSION-erklæring
Opsætning
DEST_TAB
-tabellen indeholder 10.000 rækker. SOURCE_TAB
-tabellen indeholder 5.000 rækker, som hver har en matchende nøgleværdi med en række fra DEST_TAB
-tabellen, men forskellige data i CODE
og DESCRIPTION
kolonner.
På dette tidspunkt kan vi ikke se nogen af værdierne i DESCRIPTION
kolonne i DEST_TAB
-tabellen indeholder ordet “Opdateret”.
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
Målet er at opdatere rækker i tabellen DEST_TAB
med data fra SOURCE_TAB
-tabellen.
Metode til forespørgsel
T den første mulighed er at lave en opdatering af DEST_TAB
-tabellen ved hjælp af en underforespørgsel for at hente de korrekte data fra SOURCE_TAB
-tabellen. Bemærk EXISTS
prædikatet for at ekskludere rækker fra DEST_TAB
-tabellen uden nogen matchende række i SOURCE_TAB
tabel. Uden dette vil de umatchede rækker have deres værdier sat til NULL.
Udførelsesplanen for den aktuelle datavolumen vises nedenfor.
Hvis arbejdsbelastningen er tilstrækkelig stor, og serveren kan klare den ekstra arbejdsbyrde, PARALLEL
tip kan bruges til at gøre denne kørsel parallelt.
Inline View Method
Den anden mulighed er at forbinde de to tabeller som en integreret visning og basere opdateringen derpå.
Udførelsesplanen for den aktuelle datavolumen er vist nedenfor.
Hvis arbejdsbelastningen er tilstrækkelig stor og serveren kan klare den ekstra arbejdsbelastning, PARALLEL
tip kan bruges til at gøre denne kørsel parallelt.
Antallet af opdaterede rækker kan ændres ved at tilføje en WHERE
-klausul til enten den integrerede visning eller hovedopdateringserklæringen.
- MERGE Statement
Håber dette hjælper. Hilsen Tim …
Tilbage til toppen.