Oracle MERGE (Svenska)

Sammanfattning: i denna handledning lär du dig hur du använder Oracle MERGE för att utföra en uppdatering eller infoga data baserat på ett angivet villkor.

Introduktion till Oracle MERGE-satsen

Oracle MERGE -uttrycket väljer data från en eller flera källtabeller och uppdaterar eller infogar den i en måltabell. Uttrycket MERGE låter dig ange ett villkor för att avgöra om data ska uppdateras från eller infoga data i måltabellen.

Följande illustrerar syntaxen för Oracle MERGE uttalande:

Låt oss undersöka MERGE uttalande i detalj:

Ange först måltabellen (target_table) som du vill uppdatera eller infoga i INTO -satsen.

Andra, ange källan till data (source_table) som ska uppdateras eller infogas i USING -satsen.

För det tredje, ange sökvillkoret där sammanfogningen antingen uppdateras eller infogas i ON -satsen.

För varje rad i måltabellen utvärderar Oracle sökvillkoret:

  • Om resultatet är sant uppdaterar Oracle raden med motsvarande data från källtabellen.
  • Om resultatet är falskt för en y-rader, sedan sätter Oracle motsvarande rad från källtabellen i måltabellen.

Uttrycket MERGE blir bekvämt när du vill kombinera flera INSERT, UPDATE och DELETE i en enda operation.

Eftersom MERGE är ett deterministiskt uttalande kan du inte uppdatera samma rad i måltabellen flera gånger i samma MERGE -uttalande .

Du kan lägga till en valfri DELETE WHERE -klausul i MATCHED -klausulen för att rensa efter en sammanslagning. DELETE -klausulen tar bara bort raderna i måltabellen som matchar både ON och DELETE WHERE klausuler.

Oracle MERGE förutsättningar

För att utföra MERGE uttalande måste du ha INSERT och UPDATE objektbehörigheter i källtabellerna. Om du använder DELETE -satsen måste du också ha DELETE objektbehörighet på måltabellen.

Oracle Sammanfoga exempel

Antag att vi har två tabeller: members och member_staging.

Vi infoga en ny rad i tabellen members när vi har en ny medlem. Därefter slås data från members tabellen samman med data i tabellen member_staging.

Följande uttalanden skapa members och member_staging tabeller:

Följande INSERT uttalanden infoga exempeldata i tabellerna members och member_staging:

När du uppdaterar data från members tabell till member_staging tabell, vi ska utföra följande åtgärder:

  • Vi uppdaterar raderna med medlems-id 1, 3 , 4 och 6 eftersom rankningen eller efternamnet på dessa medlemmar i dessa tabeller är olika.
  • Vi infogar raderna med medlems-id 7 till 10 beror på att dessa rader finns i members -tabell men inte i member_staging -tabellen.

Totalt ska åtta rader slås samman.

Följande ing är MERGE uttalande som utför alla dessa åtgärder i ett skott.

Sammanfogningsuttalandet jämför varje rad i members tabell med varje rad i member_staging tabellen baserat på värdena i kolumnerna member_id (se ON paragraf ovan).

Om värdena i member_id kolumnerna i båda tabellerna är lika är MERGE uttalande uppdaterar förnamn, efternamn och rankning från members tabellen till member_staging tabellen endast om värdena för första namn, efternamn eller rangkolumner i båda tabellerna är olika.

Annars infogas raden från members -tabellen i member_staging -tabell.

Oracle returnerade åtta rader sammanfogade som förväntat.

I denna handledning har du lärt dig hur du använder Oracle MERGE uttalande för att uppdatera eller infoga data baserat på ett angivet villkor.

  • Hjälpte den här självstudien?
  • Ja Nej

Leave a Reply

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *