Oracle MERGE (Magyar)

Összefoglaló: ebben az oktatóanyagban megtudhatja, hogyan használhatja az Oracle MERGE utasítást frissítés vagy beillesztés végrehajtására adatok egy meghatározott feltétel alapján.

Bevezetés az Oracle MERGE utasításba

Az Oracle MERGE utasítás egy vagy több forrástáblából választja ki az adatokat és frissíti vagy beszúrja egy céltáblába. A MERGE utasítás lehetővé teszi egy feltétel megadását annak eldöntéséhez, hogy frissítsen-e adatokat a céltáblából vagy beillessze-e azokat.

Az alábbiakban bemutatjuk az Oracle szintaxisát. MERGE utasítás:

Vizsgáljuk meg a MERGE utasítást részletesen:

Először adja meg a céltábla (target_table), amelyet frissíteni vagy beilleszteni szeretne a INTO záradékba.

Másodszor, adja meg a frissítendő vagy beillesztendő adatforrást (source_table) a USING záradékba.

Harmadszor adja meg az a keresési feltétel, amely mellett az egyesítési művelet frissíti vagy beilleszti az ON záradékot.

Az Oracle a céltábla minden egyes sorához értékeli a keresési feltételt:

  • Ha az eredmény igaz, akkor az Oracle frissíti a sort a forrás táblázat megfelelő adataival.
  • Abban az esetben, ha az eredmény hamis egy y sorokat, majd az Oracle beszúrja a megfelelő sort a forrás táblából a céltáblába.

A MERGE utasítás akkor válik kényelmessé, ha kombinálni akarja. több INSERT, UPDATE és DELETE utasítás egyetlen műveletben.

Mivel a MERGE egy determinisztikus utasítás, ezért a céltábla ugyanazt a sorát nem frissítheti többször ugyanabban a MERGE utasításban .

Hozzáadhat egy opcionális DELETE WHERE záradékot a MATCHED záradékhoz az egyesítési művelet utáni tisztításhoz. A DELETE záradék csak azokat a sorokat törli a céltáblából, amelyek megfelelnek a ON és a DELETE WHERE záradékok.

Oracle MERGE előfeltételek

A MERGE utasítás végrehajtásához rendelkeznie kell a INSERT és UPDATE objektumjogosultságok a forrás táblákon. Ha a DELETE záradékot használja, akkor a DELETE objektum jogosultsággal is kell rendelkeznie a céltáblán.

Oracle EGYESÍTÉS példa

Tegyük fel, hogy két táblázatunk van: members és member_staging.

Mi helyezzen be egy új sort a members táblába, ha új tagunk van. Ezután a members tábla adatait egyesítjük a member_staging tábla adataival.

A következő utasítások hozza létre a members és member_staging táblákat:

A következő INSERT utasítások mintaadatokat illesztenek be a members és member_staging táblázatokba:

Adatok frissítésekor a members táblát a member_staging táblára, a következő műveleteket kell végrehajtanunk:

  • Frissítjük a sorokat az 1, 3 tagazonosítóval , 4 és 6, mert ezeknek a tábláknak a tagjai rangja vagy vezetékneve különbözik.
  • A 7–10 tag azonosítójú sorokat azért szúrjuk be, mert ezek a sorok léteznek a members táblázatba, de nem a member_staging táblába.

Összesen 8 sort kell egyesíteni.

A következő Az MERGE utasítás, amely ezeket a műveleteket egy lövésben hajtja végre.

Az egyesítési utasítás összehasonlítja a members tábla az member_staging táblázat minden sorával a member_id oszlopok értékei alapján (lásd: ON fenti záradék).

Ha mindkét tábla member_id oszlopainak értékei megegyeznek, akkor a MERGE utasítás csak akkor frissíti a members táblázat keresztnevét, vezetéknevét és rangját a member_staging táblára, ha az első értékek mindkét táblázat neve, vezetékneve vagy rangoszlopa különbözik.

Ellenkező esetben beszúrja a sort a members táblából a member_staging táblázat.

Az Oracle 8 sort adott vissza, a várakozásoknak megfelelően egyesítve.

Ebben az oktatóanyagban megtanulta az Oracle használatát MERGE utasítás az adatok frissítésére vagy beszúrására megadott feltétel alapján.

  • Hasznos volt ez az oktatóanyag?
  • IgenNem

Leave a Reply

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük