Oracle MERGE (Čeština)

Shrnutí: v tomto kurzu se naučíte, jak pomocí příkazu Oracle MERGE provést aktualizaci nebo vložit data založená na zadané podmínce.

Úvod do příkazu Oracle MERGE

Příkaz Oracle MERGE vybírá data z jedné nebo více zdrojových tabulek a aktualizuje nebo vloží jej do cílové tabulky. Příkaz MERGE umožňuje zadat podmínku pro určení, zda se mají aktualizovat data z cílové tabulky nebo zda se do ní mají vložit data.

Následující text ilustruje syntaxi Oracle MERGE prohlášení:

Podívejme se podrobně na MERGE prohlášení:

Nejprve určete cílová tabulka (target_table), kterou chcete aktualizovat nebo vložit do klauzule INTO.

Zadruhé, uveďte zdroj dat (source_table), které mají být aktualizovány nebo vloženy do klauzule USING.

Zatřetí, uveďte podmínka hledání, za níž se operace sloučení aktualizuje nebo vloží do klauzule ON.

Oracle vyhodnotí podmínku hledání pro každý řádek v cílové tabulce:

  • Pokud je výsledek pravdivý, pak Oracle aktualizuje řádek o odpovídající data ze zdrojové tabulky.
  • V případě, že je výsledek pro y řádky, pak Oracle vloží odpovídající řádek ze zdrojové tabulky do cílové tabulky.

Příkaz MERGE je vhodný, když ho chcete kombinovat více INSERT, UPDATE a DELETE příkazů v jedné operaci.

Protože MERGE je deterministický příkaz, nemůžete aktualizovat stejný řádek cílové tabulky vícekrát ve stejném MERGE .

Do klauzule MATCHED můžete přidat volitelnou klauzuli DELETE WHERE a vyčistit ji po sloučení. Klauzule DELETE odstraní pouze řádky v cílové tabulce, které odpovídají ON i DELETE WHERE klauzule.

Předpoklady Oracle MERGE

Chcete-li provést příkaz MERGE, musíte mít INSERT a UPDATE oprávnění objektu ve zdrojových tabulkách. Pokud používáte klauzuli DELETE, musíte mít v cílové tabulce také oprávnění DELETE.

Oracle Příklad SLOUČENÍ

Předpokládejme, že máme dvě tabulky: members a member_staging.

My vložit nový řádek do members tabulky, kdykoli máme nového člena. Poté jsou data z members tabulky sloučena s daty z member_staging tabulky.

Následující výroky vytvořte members a member_staging tabulky:

Následující INSERT příkazy vloží ukázková data do tabulek members a member_staging:

Při aktualizaci dat z members tabulka do member_staging tabulky, měli bychom provést následující akce:

  • Aktualizujeme řádky s ID člena 1, 3 , 4 a 6, protože pořadí nebo příjmení těchto členů v těchto tabulkách se liší.
  • Vkládáme řádky s ID členů 7 až 10, protože tyto řádky existují v , ale ne v tabulce member_staging.

Celkem by mělo být sloučeno 8 řádků.

Následující ing je příkaz MERGE, který provádí všechny tyto akce najednou.

Příkaz sloučení porovnává každý řádek v members tabulka s každým řádkem v member_staging tabulce na základě hodnot ve sloupcích member_id (viz ON výše)].

Pokud jsou hodnoty ve sloupcích member_id obou tabulek stejné, MERGE aktualizuje křestní jméno, příjmení a pořadí z members tabulky do member_staging tabulky pouze v případě, že hodnoty first sloupce pro jméno, příjmení nebo pořadí v obou tabulkách se liší.

Jinak vloží řádek z tabulky members do member_staging tabulka.

Oracle vrátil 8 řádků sloučených podle očekávání.

V tomto výukovém programu jste se naučili používat Oracle MERGE prohlášení k aktualizaci nebo vložení dat na základě zadané podmínky.

  • Byl tento výukový program užitečný?
  • Ano Ne

Leave a Reply

Napsat komentář

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