Oracle MERGE (Dansk)

Resumé: i denne vejledning lærer du, hvordan du bruger Oracle MERGE til at udføre en opdatering eller indsættelse data baseret på en bestemt tilstand.

Introduktion til Oracle MERGE-sætningen

Oracle MERGE -sætningen vælger data fra en eller flere kildetabeller og opdaterer eller indsætter det i en måltabel. MERGE -erklæringen giver dig mulighed for at specificere en betingelse for at bestemme, om du vil opdatere data fra eller indsætte data i måltabellen.

Følgende illustrerer syntaksen for Oracle MERGE udsagn:

Lad os undersøge MERGE udsagn i detaljer:

Angiv først måltabellen (target_table), som du vil opdatere eller indsætte i i INTO -klausulen.

Andet, angiv datakilden (source_table), der skal opdateres eller indsættes i USING -klausulen.

For det tredje skal du angive den søgebetingelse, hvormed fletningen enten opdateres eller indsættes i ON -klausulen.

For hver række i måltabellen vurderer Oracle søgebetingelsen:

  • Hvis resultatet er sandt, opdaterer Oracle rækken med de tilsvarende data fra kildetabellen.
  • Hvis resultatet er falsk for en y-rækker, så indsætter Oracle den tilsvarende række fra kildetabellen i måltabellen.

MERGE udsagnet bliver praktisk, når du vil kombinere flere INSERT, UPDATE og DELETE udsagn i en enkelt operation.

Da MERGE er en deterministisk sætning, kan du ikke opdatere den samme række i måltabellen flere gange i den samme MERGE .

Du kan føje en valgfri DELETE WHERE -klausul til MATCHED -klausulen for at rydde op efter en fusionshandling. DELETE -klausulen sletter kun rækkerne i måltabellen, der matcher både ON og DELETE WHERE klausuler.

Oracle MERGE forudsætninger

For at udføre MERGE udsagnet skal du have INSERT og UPDATE objektrettigheder i kildetabellerne. Hvis du bruger DELETE -klausulen, skal du også have objektet DELETE på måltabellen.

Oracle FUSION-eksempel

Antag, vi har to tabeller: members og member_staging.

Vi indsæt en ny række i tabellen members, når vi har et nyt medlem. Derefter flettes dataene fra members -tabellen med dataene fra member_staging -tabellen.

Følgende udsagn Opret members og member_staging tabeller:

Følgende INSERT udsagn indsætter eksempeldata i tabellerne members og member_staging:

Når du opdaterer data fra members tabel til member_staging tabel, vi skal udføre følgende handlinger:

  • Vi opdaterer rækkerne med medlems-id 1, 3 , 4 og 6, fordi rangen eller efternavnet på disse medlemmer i disse tabeller er forskellige.
  • Vi indsætter rækkerne med medlems-id 7 til 10, fordi disse rækker findes i members -tabellen, men ikke i member_staging -tabellen.

I alt skal 8 rækker flettes.

Følgende ing er MERGE udsagn, der udfører alle disse handlinger i et skud.

Fletningsudtalelsen sammenligner hver række i members tabel med hver række i member_staging -tabellen baseret på værdierne i member_id -kolonnerne (se ON klausul ovenfor).

Hvis værdierne i member_id kolonner i begge tabeller er ens, er MERGE udsagn opdaterer fornavn, efternavn og rang fra members -tabellen til member_staging -tabellen, hvis værdierne for første navn, efternavn eller rangkolonner i begge tabeller er forskellige.

Ellers indsættes rækken fra members -tabellen i member_staging -tabel.

Oracle returnerede 8 rækker flettet som forventet.

I denne vejledning har du lært, hvordan du bruger Oracle MERGE erklæring for at opdatere eller indsætte data baseret på en bestemt tilstand.

  • Var denne tutorial nyttig?
  • Ja Nej

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *