Ö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 amember_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