Explicit kurzor vs implicit kurzor
Ami az adatbázisokat illeti, a kurzor egy olyan vezérlőszerkezet, amely lehetővé teszi az adatbázisban szereplő rekordok áthaladását. A kurzor egy olyan mechanizmust biztosít, amely hozzárendel egy nevet egy SQL Select utasításhoz, majd felhasználható az SQL utasításban található információk manipulálására. Az implicit kurzorok automatikusan létrejönnek és felhasználásra kerülnek, amikor a Select utasítás kiadásra kerül PL / SQL formátumban, amikor nincs kifejezetten definiált kurzor. Az explicit kurzorokat, ahogy a neve is sugallja, a fejlesztő határozza meg. A PL / SQL-ben az explicit kurzor valójában egy megnevezett lekérdezés, amelyet a kurzor kulcsszó-szóval határozunk meg.
Mi az implicit kurzor??
Az implicit kurzorokat az Oracle automatikusan létrehozza és felhasználja minden egyes kiválasztott utasítás kiadásakor. Implicit kurzor használata esetén az Adatbázis-kezelő Rendszer (DBMS) automatikusan végrehajtja a nyitást, a letöltést és a bezárást. Az implicit kurzorokat csak az 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, egy implicit kurzor használata hibát okoz. Egy implicit kurzort automatikusan társítunk minden adatkezelési nyelv (DML) utasításhoz, nevezetesen az INSERT, UPDATE és DELETE utasításokhoz. Ezenkívül egy implicit kurzort használunk a SELECT INTO utasítások feldolgozására. Az adatok implicit kurzorokkal történő lehívásakor a NO_DATA_FOUND kivétel felvehető, ha az SQL utasítás nem ad vissza adatokat. Ezenkívül az implicit kurzorok TOO_MANY_ROWS kivételeket is felvehetnek, 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 alapján definiált lekérdezések. Egy explicit kurzor úgy tekinthető, mint egy mutató egy rekordkészletre, és a mutatót előre lehet mozgatni a rekordkészletben. Az explicit kurzorok lehetővé teszik a felhasználó számára az adatok megnyitásának, bezárásának és beolvasásának teljes irányítását. Ezenkívül több sor is lehívható explicit kurzor használatával. Az explicit kurzorok ugyanúgy vehetnek paramétereket, mint bármelyik funkció vagy eljárás, így a kurzor változói minden egyes végrehajtáskor megváltoztathatók. Ezenkívül az explicit kurzorok lehetővé teszik, hogy egy egész sort lehívj egy PL / SQL rekordváltozóba. Egy explicit kurzor használatakor először azt egy név használatával kell deklarálni. A kurzor attribútumok a kurzornak megadott névvel érhetők el. A deklarálás után először ki kell nyitni a kurzort. Ezután meg lehet kezdeni a letöltést. Ha több sort kell letölteni, akkor a beolvasási műveletet hurokban kell végrehajtani. Végül a kurzort be kell zárni.
Különbség az explicit és az implicit kurzor között
Az implicit kurzor és az explicit kurzor közötti fő különbség az, hogy az explicit kurzort kifejezetten meg kell határozni egy név megadásával, míg az implicit kurzorok automatikusan létrejönnek, amikor egy kiválasztott utasítást ad ki. Ezenkívül több sor is lehívható explicit kurzorokkal, míg az implicit kurzorok csak egyetlen sort lehet letölteni. Szintén a NO_DATA_FOUND és a TOO_MANY_ROWS kivételeket nem vetik fel explicit kurzorok használatakor, szemben az implicit kurzorokkal. Lényegében az implicit kurzorok érzékenyebbek az adathibákra, é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.