Különbség az explicit kurzor és az implicit kurzor között

Anonim

Explicit kurzor vagy implicit kurzor

Az adatbázisok esetében a kurzor egy olyan vezérlőszerkezet, amely lehetővé teszi az adatbázishoz tartozó rekordok átfutását. A kurzor olyan mechanizmust biztosít a név hozzárendeléséhez, amelyet az SQL kiválaszthatja, majd az SQL utasításban lévő információk manipulálására használható. Az implicit kurzorok automatikusan létrehozásra és felhasználásra kerülnek, amikor a Select utasítás ki van adva a PL / SQL-ben, ha nincs kifejezetten meghatározott kurzor. Az explicit kurzorok, amint azt a név is sugallja, kifejezetten a fejlesztő határozza meg. A PL / SQL-ben egy explicit kurzor ténylegesen egy megadott lekérdezés, amelyet a kulcsszó kurzor segítségével definiáltunk.

Mi az implicit kurzor?

Az implicit kurzorok automatikusan létrehozásra és felhasználásra kerülnek az Oracle minden egyes alkalommal, amikor egy kiválasztott nyilatkozatot adnak ki. Ha egy implicit kurzort használ, az Adatbázis-kezelő rendszer (DBMS) automatikusan végrehajtja a nyitott, lekérhető és bezáró műveleteket. Az implicit kurzorokat csak olyan SQL utasításokkal lehet használni, amelyek egyetlen sorral térnek vissza. Ha az SQL utasítás több sorral tér vissza, az implicit kurzor használatával hiba lép fel. Az implicit kurzort automatikusan összekapcsolják minden egyes adatkezelési nyelv (DML) utasítással, nevezetesen az INSERT, az UPDATE és a DELETE utasításokkal. Emellett implicit kurzor is használható a SELECT INTO utasítások feldolgozásához. Az adatok lekérdezése implicit kurzorokkal NO_DATA_FOUND kivételt lehet felemelni, ha az SQL utasítás nem ad vissza adatokat. Továbbá, az implicit kurzorok növelhetik a TOO_MANY_ROWS kivételeket, ha az SQL utasítás több mint egy sort ad vissza.

Mi az Explicit kurzor?

Amint korábban említettük, az explicit kurzorok olyan lekérdezések, amelyeket egy név használatával határoznak meg. Egy explicit kurzor a rekordok mutatójának tekinthető, és a mutatót a rekordok sorában előre lehet mozgatni. Az explicit kurzorok biztosítják a felhasználó számára a teljes körű ellenőrzést az adatok megnyitásával, bezárásával és lekérésével. Emellett több sor is elérhető egy explicit kurzor használatával. Az explicit kurzorok ugyanúgy mint bármelyik függvényt vagy eljárást is igénybe vehetnek, így a kurzor változói minden egyes végrehajtásakor megváltoztathatók. Ezenkívül az explicit kurzorok lehetővé teszik, hogy egy egész sorot egy PL / SQL rekord változóhoz juttasson el. Egy explicit kurzor használatakor először egy név használatával kell bejelenteni. A kurzor tulajdonságai a kurzorral megadott név használatával érhetők el. A kijelentés után először a kurzort kell megnyitni. Ezután elindítható a letöltés. Ha több sorot kell lekérni, akkor a letöltési műveletet hurokon belül kell elvégezni. Végül a kurzort le kell zárni.

Az explicit kurzor és az implicit kurzor közötti különbség

Az implicit kurzor és az explicit kurzor közötti fő különbség az, hogy egy explicit kurzort explicit módon kell megadni egy név használatával, míg az implicit kurzorok automatikusan létrejönnek kiválaszthatja a kijelölt nyilatkozatot.Ezenkívül több sor is lekérhető explicit kurzorok használatával, míg az implicit kurzorok csak egyetlen sort tudnak lekérdezni. Az NO_DATA_FOUND és a TOO_MANY_ROWS kivételek sem emelkednek, ha explicit kurzorokat használnak, szemben az implicit kurzorokkal. Lényegében az implicit kurzorok sokkal kiszolgáltatottabbak az adathibáknál, és kevésbé programozhatóak, mint az explicit kurzorok. Emellett az implicit kurzorok kevésbé hatékonyak, mint az explicit kurzorok.