aktualizace založené na dotazech

8i | 9i | 10 g | 11 g | 12c | 13c | 18c | 19c | 21c | Různé | PL / SQL | SQL | RAC | WebLogic | Linux

Domů „Články“ Různé „Zde

Tento článek popisuje, jak lze tabulku aktualizovat pomocí dat z jiné tabulky.

  • Nastavení
  • Metoda poddotazů
  • Metoda přímého zobrazení
  • Metoda prohlášení SLOUČENÍ

Související články.

  • Prohlášení o sloučení

Nastavení

Tabulka DEST_TAB obsahuje 10 000 řádků. obsahuje 5 000 řádků, z nichž každý má shodnou hodnotu klíče s řádkem z DEST_TAB tabulky, ale jiná data v CODE a DESCRIPTION sloupce.

V tomto okamžiku nevidíme žádnou z hodnot ve DESCRIPTION tabulky DEST_TAB obsahuje slovo „Aktualizováno“.

SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>

Cílem je aktualizovat řádky v tabulce DEST_TAB s údaji z tabulky SOURCE_TAB.

Metoda poddotazu

T První možností je provést aktualizaci DEST_TAB tabulky pomocí poddotazu a získat tak správná data z SOURCE_TAB tabulky. Všimněte si predikátu EXISTS, který vylučuje řádky z DEST_TAB tabulky bez odpovídajícího řádku v SOURCE_TAB stůl. Bez toho budou mít neporovnané řádky jejich hodnoty nastaveny na NULL.

Níže je zobrazen plán provádění pro aktuální objem dat.

Pokud je pracovní zátěž dostatečně velká a server může zvládnout další pracovní zátěž, lze k paralelnímu běhu použít PARALLEL nápovědu.

Metoda přímého zobrazení

Druhá možnost je spojit tyto dvě tabulky jako vložené zobrazení a založit na tom aktualizaci.

Plán provádění pro aktuální objem dat je uveden níže.

Pokud je pracovní zátěž dostatečně velká a server si poradí s extra zátěží, lze k paralelnímu spuštění použít PARALLEL nápovědu.

Počet aktualizovaných řádků lze změnit přidáním klauzuli WHERE buď v přímém zobrazení, nebo v hlavním prohlášení o aktualizaci.

  • Prohlášení SLOUČIT

Doufám, že pomáhá. S pozdravem Tim …

Zpět nahoru.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *