Explicit Kurzor vs Implicit Kurzor
Ha az adatbázisokról van szó, akkor a kurzor egy olyan vezérlő struktúra, amely lehetővé teszi az adatbázis bejegyzésein való áthaladást. A kurzor egy mechanizmust biztosít egy név hozzárendeléséhez egy SQL select utasításhoz, majd felhasználható az adott SQL utasításban lévő információk kezelésére. Az implicit kurzorok automatikusan létrehozásra és felhasználásra kerülnek, amikor egy Select utasítás kiadásra kerül PL / SQL-ben, amikor nincs kifejezetten meghatározott kurzor. Az explicit kurzorokat, ahogy a neve is sugallja, a fejlesztő kifejezetten meghatározza. A PL / SQL-ben az explicit kurzor valójában egy elnevezett lekérdezés, amelyet a kulcsszó kurzor segítségével definiálunk.
Mi az implicit kurzor?
Az implicit kurzorokat automatikusan létrehozza és használja az Oracle, minden egyes kiválasztási utasítás kiadásakor. Ha implicit kurzort használ, az adatbázis-kezelő rendszer (DBMS) automatikusan végrehajtja a nyitás, a lekérés és a bezárás műveleteket. Az implicit kurzorokat csak olyan SQL utasításokkal szabad használni, amelyek egyetlen sort adnak vissza. Ha az SQL utasítás egynél több sort ad vissza, akkor egy implicit kurzor használata hibát okoz. Egy implicit kurzor automatikusan társul minden egyes adatkezelési nyelv (DML) utasításhoz, nevezetesen az INSERT, az UPDATE és a DELETE utasításokhoz. Ezenkívül implicit kurzort használnak a SELECT INTO utasítások feldolgozásához. Az adatok implicit kurzorok használatával történő lekérésekor a NO_DATA_FOUND kivétel felvethető, ha az SQL utasítás nem ad vissza adatot. Továbbá,az implicit kurzorok TOO_MANY_ROWS kivételeket emelhetnek, ha az SQL utasítás egynél több sort ad vissza.
Mi az explicit kurzor?
Mint korábban említettük, az explicit kurzorok név segítségével definiált lekérdezések. Egy explicit kurzort úgy lehet elképzelni, mint egy rekordkészlet mutatóját, és a mutatót előre lehet vinni a rekordhalmazon belül. Az explicit kurzorok biztosítják a felhasználó számára az adatok megnyitásának, bezárásának és beolvasásának teljes ellenőrzését. Ezenkívül több sor is lekérhető egy explicit kurzor segítségével. Az explicit kurzorok paramétereket is vehetnek, mint bármelyik funkciót vagy eljárást, így a kurzor változói minden végrehajtáskor megváltoztathatók. Ezenkívül az explicit kurzorok lehetővé teszik egy teljes sor beolvasását egy PL / SQL rekordváltozóba. Ha explicit kurzort használ, akkor először névvel kell deklarálni. A kurzor attribútumai a kurzornak adott név használatával érhetők el. A deklarálás után először a kurzort kell megnyitni. Ezután meg lehet kezdeni a beolvasást. Ha több sort kell beolvasni, akkor a beolvasási műveletet egy hurokban kell végrehajtani. Végül a kurzort be kell zárni.
Különbség az explicit kurzor és az implicit kurzor között
A fő különbség az implicit kurzor és az explicit kurzor között az, hogy egy explicit kurzort kifejezetten meg kell határozni egy név megadásával, míg az implicit kurzorok automatikusan létrejönnek, amikor kiválasztott utasítást ad ki. Ezenkívül több sor is lekérhető explicit kurzorokkal, míg az implicit kurzorok csak egyetlen sort tudnak lekérni. Szintén a NO_DATA_FOUND és a TOO_MANY_ROWS kivétel nem merül fel explicit kurzorok használata esetén, szemben az implicit kurzorokkal. Lényegében az implicit kurzorok kiszolgáltatottabbak az adathibákra nézve, és kevesebb programozási irányítást biztosítanak, mint az explicit kurzorok. Ezenkívül az implicit kurzorok kevésbé hatékonyak, mint az explicit kurzorok.