Rozdiel Medzi Explicitným Kurzorom A Implicitným Kurzorom

Rozdiel Medzi Explicitným Kurzorom A Implicitným Kurzorom
Rozdiel Medzi Explicitným Kurzorom A Implicitným Kurzorom

Video: Rozdiel Medzi Explicitným Kurzorom A Implicitným Kurzorom

Video: Rozdiel Medzi Explicitným Kurzorom A Implicitným Kurzorom
Video: Дифференциальные уравнения: неявные решения (уровень 1 из 3) | Основы, формальное решение 2024, Smieť
Anonim

Explicitný kurzor vs implicitný kurzor

Pokiaľ ide o databázy, kurzor je riadiaca štruktúra, ktorá umožňuje prechádzanie záznamami v databáze. Kurzor poskytuje mechanizmus na priradenie názvu príkazu SQL select a potom ho možno použiť na manipuláciu s informáciami v tomto príkaze SQL. Implicitné kurzory sa automaticky vytvárajú a používajú sa vždy, keď sa v PL / SQL vydá príkaz Select, keď neexistuje explicitne definovaný kurzor. Výslovné kurzory, ako už názov napovedá, vývojár definuje výslovne. V PL / SQL je explicitný kurzor vlastne pomenovaný dotaz definovaný pomocou kurzora kľúčového slova.

Čo je implicitný kurzor?

Implicitné kurzory sa vytvárajú a používajú Oracle automaticky pri každom vydaní príkazu select. Ak sa použije implicitný kurzor, systém správy databáz (DBMS) vykoná operácie otvorenia, načítania a zatvorenia automaticky. Implicitné kurzory by sa mali používať iba s príkazmi SQL, ktoré vracajú jeden riadok. Ak príkaz SQL vráti viac ako jeden riadok, pri použití implicitného kurzora sa vyskytne chyba. Implicitný kurzor je automaticky asociovaný s každým výpisom jazyka Data Manipulation Language (DML), konkrétne s príkazmi INSERT, UPDATE a DELETE. Na spracovanie príkazov SELECT INTO sa používa aj implicitný kurzor. Pri načítaní údajov pomocou implicitných kurzorov možno vyvolať výnimku NO_DATA_FOUND, keď príkaz SQL nevráti žiadne údaje. Ďalejimplicitné kurzory môžu vyvolať TOO_MANY_ROWS výnimky, keď príkaz SQL vráti viac ako jeden riadok.

Čo je Explicitný kurzor?

Ako už bolo spomenuté, explicitné kurzory sú dotazy definované pomocou názvu. Explicitný kurzor možno považovať za ukazovateľ na množinu záznamov a ukazovateľ sa dá v rámci množiny záznamov posunúť dopredu. Explicitné kurzory poskytujú používateľovi úplnú kontrolu nad otváraním, zatváraním a načítaním údajov. Viaceré riadky je tiež možné načítať pomocou explicitného kurzora. Explicitné kurzory môžu tiež brať parametre rovnako ako všetky funkcie alebo procedúry, aby bolo možné premenné v kurzore meniť zakaždým, keď sa vykonajú. Explicitné kurzory vám navyše umožňujú načítať celý riadok do premennej záznamu PL / SQL. Pri použití explicitného kurzora je potrebné ho najskôr deklarovať pomocou mena. K atribútom kurzora je možné pristupovať pomocou názvu daného kurzoru. Po deklarácii je potrebné najskôr otvoriť kurzor. Potom je možné začať s načítaním. Ak je potrebné načítať viac riadkov, operáciu načítania je potrebné vykonať vo vnútri slučky. Nakoniec je potrebné zavrieť kurzor.

Rozdiel medzi explicitným kurzorom a implicitným kurzorom

Hlavný rozdiel medzi implicitným kurzorom a explicitným kurzorom je v tom, že explicitný kurzor je potrebné definovať explicitne zadaním názvu, zatiaľ čo implicitné kurzory sa automaticky vytvárajú pri vydaní príkazu select. Ďalej je možné načítať viac riadkov pomocou explicitných kurzorov, zatiaľ čo implicitné kurzory môžu načítať iba jeden riadok. Výnimky NO_DATA_FOUND a TOO_MANY_ROWS tiež nie sú vyvolané pri použití explicitných kurzorov, na rozdiel od implicitných kurzorov. Implicitné kurzory sú v podstate zraniteľnejšie voči chybám v údajoch a poskytujú menej programovej kontroly ako explicitné kurzory. Implicitné kurzory sa tiež považujú za menej efektívne ako explicitné kurzory.

Odporúčaná: