Täsmällinen kohdistin vs. epäsuora kohdistin
Kun kyse on tietokannoista, kohdistin on ohjausrakenne, joka mahdollistaa tietokannan tietueiden kulkemisen. Kohdistin tarjoaa mekanismin, jolla nimi voidaan nimetä SQL-valintalausekkeelle, ja sitten sitä voidaan käyttää kyseisen SQL-käskyn tietojen käsittelemiseen. Epäsuorat kohdistimet luodaan ja käytetään automaattisesti aina, kun Select-käsky julkaistaan PL / SQL: ssä, kun ei ole nimenomaisesti määriteltyä kohdistinta. Kehittäjä määrittelee eksplisiittiset kohdistimet, kuten nimestä voi päätellä. PL / SQL: ssä eksplisiittinen kohdistin on oikeastaan nimetty kysely, joka määritetään avainsanakohdistimella.
Mikä on implisiittinen kohdistin?
Oracle luo ja käyttää automaattisesti implisiittisiä kohdistimia joka kerta, kun jokin valittu käsky annetaan. Jos käytetään implisiittistä kohdistinta, tietokannan hallintajärjestelmä (DBMS) suorittaa avoimet, noutavat ja sulkevat toiminnot automaattisesti. Välillisiä osoittimia tulisi käyttää vain SQL-lauseiden kanssa, jotka palauttavat yhden rivin. Jos SQL-käsky palauttaa useamman kuin yhden rivin, implisiittisen kohdistimen käyttö aiheuttaa virheen. Epäsuora kohdistin liitetään automaattisesti jokaiseen Data Manipulation Language (DML) -käskyyn, nimittäin INSERT-, UPDATE- ja DELETE-käskyihin. Myös implisiittistä kohdistinta käytetään SELECT INTO -käskyjen käsittelemiseen. Kun noudetaan tietoja implisiittisillä kohdistimilla, NO_DATA_FOUND-poikkeusta voidaan nostaa, kun SQL-käsky ei tuota dataa. Lisäksi implisiittiset kohdistimet voivat nostaa TOO_MANY_ROWS-poikkeuksia, kun SQL-käsky palauttaa useamman kuin yhden rivin.
Mikä on eksplisiittinen kohdistin?
Kuten aiemmin mainittiin, eksplisiittiset kohdistimet ovat kyselyjä, jotka on määritelty nimellä. Täsmällistä kohdistinta voidaan ajatella osoittimena tietuejoukolle ja osoitinta voidaan siirtää eteenpäin tietuejoukossa. Täsmälliset kohdistimet tarjoavat käyttäjälle täydellisen hallinnan datan avaamiseen, sulkemiseen ja noutamiseen. Voit myös hakea useita rivejä käyttämällä tarkkaa kohdistinta. Täsmälliset kohdistimet voivat myös ottaa parametrejä, kuten mikä tahansa toiminto tai menettely, jotta kohdistimen muuttujia voidaan muuttaa joka kerta, kun se suoritetaan. Lisäksi eksplisiittisten kohdistimien avulla voit hakea kokonaisen rivin PL / SQL-tietuemuuttujaan. Kun käytät nimenomaista kohdistinta, se on ensin ilmoitettava nimellä. Kohdistinmääritteet voidaan käyttää kohdistimelle annetulla nimellä. Julistamisen jälkeen kohdistin on ensin avattava. Sitten hakeminen voidaan aloittaa. Jos useita rivejä on haettava, nouto on suoritettava silmukan sisällä. Lopuksi osoitin on suljettava.
Ero eksplisiittisen kohdistimen ja implisiittisen kohdistimen välillä
Suurin ero implisiittisen kohdistimen ja eksplisiittisen kohdistimen välillä on, että eksplisiittinen kohdistin on määritettävä nimenomaisesti antamalla nimi, kun taas implisiittiset kohdistimet luodaan automaattisesti, kun annat valitun käskyn. Lisäksi useita rivejä voidaan noutaa käyttämällä eksplisiittisiä kohdistimia, kun taas implisiittiset kohdistimet voivat noutaa vain yhden rivin. Myös NO_DATA_FOUND- ja TOO_MANY_ROWS-poikkeuksia ei nosteta käytettäessä eksplisiittisiä kohdistimia, toisin kuin implisiittisiä kohdistimia. Pohjimmiltaan implisiittiset osoittimet ovat alttiimpia datavirheille ja tarjoavat vähemmän ohjelmoitavaa ohjausta kuin eksplisiittiset kohdistimet. Myös implisiittisiä kohdistimia pidetään vähemmän tehokkaina kuin eksplisiittisiä kohdistimia.