Aiškus žymeklis prieš numanomą žymeklį
Kalbant apie duomenų bazes, žymeklis yra valdymo struktūra, leidžianti pereiti per duomenų bazės įrašus. Žymeklis suteikia mechanizmą, leidžiantį priskirti pavadinimą SQL pasirinkimo sakiniui, o tada jį galima naudoti manipuliuojant tame SQL sakinyje esančia informacija. Numanomi žymekliai automatiškai sukuriami ir naudojami kiekvieną kartą, kai PL/SQL išleidžiamas Select sakinys, kai nėra aiškiai apibrėžto žymeklio. Aiškūs žymekliai, kaip rodo pavadinimas, yra aiškiai apibrėžti kūrėjo. PL/SQL aiškus žymeklis iš tikrųjų yra pavadinta užklausa, apibrėžta naudojant raktinio žodžio žymeklį.
Kas yra numanomas žymeklis?
Netiesioginius žymeklius automatiškai sukuria ir „Oracle“naudoja kiekvieną kartą, kai išduoda pasirinktą pareiškimą. Jei naudojamas numanomas žymeklis, duomenų bazių valdymo sistema (DBVS) automatiškai atliks atidarymo, gavimo ir uždarymo operacijas. Numanomi žymekliai turėtų būti naudojami tik su SQL sakiniais, kurie grąžina vieną eilutę. Jei SQL sakinys pateikia daugiau nei vieną eilutę, numanomo žymeklio naudojimas įves klaidą. Netiesioginis žymeklis automatiškai susiejamas su kiekvienu duomenų manipuliavimo kalbos (DML) sakiniu, būtent INSERT, UPDATE ir DELETE. Be to, numanomas žymeklis naudojamas SELECT INTO sakiniams apdoroti. Gaunant duomenis naudojant numanomus žymeklius, NO_DATA_FOUND išimtis gali būti iškelta, kai SQL sakinys nepateikia duomenų. Be to, numanomi žymekliai gali sukelti TOO_MANY_ROWS išimčių, kai SQL sakinys pateikia daugiau nei vieną eilutę.
Kas yra aiškus žymeklis?
Kaip minėta anksčiau, aiškūs žymekliai yra užklausos, apibrėžtos naudojant pavadinimą. Aiškus žymeklis gali būti laikomas žymekliu į įrašų rinkinį, o žymeklį galima perkelti į priekį įrašų rinkinyje. Aiškūs žymekliai suteikia vartotojui visišką duomenų atidarymo, uždarymo ir gavimo kontrolę. Be to, kelias eilutes galima gauti naudojant aiškų žymeklį. Aiškūs žymekliai taip pat gali užimti parametrus, kaip ir bet kuri funkcija ar procedūra, kad būtų galima keisti žymeklio kintamuosius kiekvieną kartą jį vykdant. Be to, aiškūs žymekliai leidžia gauti visą eilutę į PL/SQL įrašo kintamąjį. Naudojant aiškų žymeklį, pirmiausia jį reikia deklaruoti naudojant pavadinimą. Žymeklio atributus galima pasiekti naudojant žymekliui suteiktą pavadinimą. Po deklaravimo pirmiausia reikia atidaryti žymeklį. Tada galima pradėti gavimą. Jei reikia gauti kelias eilutes, gavimo operacija turi būti atliekama ciklo viduje. Galiausiai reikia uždaryti žymeklį.
Aiškiojo ir numanomo žymeklio skirtumas
Pagrindinis skirtumas tarp numanomo ir eksplicitinio žymeklio yra tas, kad aiškus žymeklis turi būti aiškiai apibrėžtas nurodant pavadinimą, o numanomi žymekliai automatiškai sukuriami, kai pateikiate pasirinkimo teiginį. Be to, naudojant aiškius žymeklius galima gauti kelias eilutes, o numanomi žymekliai gali gauti tik vieną eilutę. Taip pat NO_DATA_FOUND ir TOO_MANY_ROWS išimtys nekeliamos naudojant aiškius žymeklius, o ne numanomus žymeklius. Iš esmės numanomi žymekliai yra labiau pažeidžiami dėl duomenų klaidų ir suteikia mažiau programinio valdymo nei aiškūs žymekliai. Be to, netiesioginiai žymekliai laikomi mažiau efektyviais nei atvirieji žymekliai.