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