Úvod do kurzora v PL / SQL

PL / SQL je jedným z najčastejšie používaných programovacích jazykov, pokiaľ ide o programovanie databázy. Niektoré dôležité pojmy PL / SQL sa musia programátorom PL / SQL naučiť a porozumieť im, aby ich správne používali. Kurzor je jedným z nich. V programe PL / SQL musia byť príkazy SQL vykonané na konci. Kurzor je rovnako ako ukazovateľ, ktorý sa používa na ukazovanie oblasti kontextu vytvorenej spoločnosťou Oracle na vykonanie príkazu SQL. Kurzor obsahuje všetky riadky vrátené po spracovaní príkazov SQL. Súbor riadku, ktorý drží kurzor, sa označuje ako aktívny súbor. Kurzor môže byť tiež pomenovaný, aby ho programátor v programe použil ďalej. V tejto téme sa dozvieme o kurzoroch v PL / SQL.

Typy kurzorov

V programovaní PL / SQL sa používajú 2 typy kurzorov:

1. Implicitné kurzory

Ako už názov napovedá, implicitné kurzory sú tie kurzory, ktoré spoločnosť Oracle automaticky vytvorí pri vykonávaní príkazov DML, ako sú INSERT, DELETE, UPDATE. Ak programátor nevytvorí žiadny kurzor, Oracle ho sám vytvorí, aby držal riadky ovplyvnené príkazmi DML. Tieto kurzory nemôžu byť programátorom pomenované, a preto nemôžu byť uvedené a použité na inom mieste v kóde. Hoci spoločnosť Oracle poskytuje niektoré atribúty na vykonávanie niektorých operácií ako napríklad

% FOUND, % NOTFOUND, % ROWCOUNT, % ISOPEN.

S.No.atribútpopis
1.nájdených%Vráti hodnotu true, ak príkazy DML, napríklad INSERT,

ODSTRÁNIŤ, UPDATE ovplyvní jeden alebo viac riadkov alebo príkaz SELECT vráti jeden alebo viac riadkov. V opačnom prípade vráti hodnotu False

2.%NENÁJDENÉJe to opak atribútu% FOUND. Vracia sa True, ak žiadny z riadkov nie je ovplyvnený príkazom DML alebo príkaz SELECT nevracia žiadne výsledky. V opačnom prípade vráti hodnotu False.
3.%JE OTVORENÉV prípade implicitných kurzorov vždy vracia False, pretože Oracle zatvára kurzor tesne po vykonaní príkazov SQL.
4.% ROWCOUNTVráti počet riadkov. Tj. Počet riadkov, ktoré sú ovplyvnené zmieneným DML
príkazy programátora v PL / SQL kóde ako INSERT, DELETE a UPDATE alebo počet riadkov vrátených príkazom SELECT INTO.
príklad

Scenár: Aktualizácia známok všetkých študentov v tabuľke „študent“ v angličtine Subjekt, ktorý má stĺpec „predmet“, do 10.

DECLARE
affected_rows number(4);
BEGIN
UPDATE students SET marks = marks+10 where subject = 'English';
IF​ sql%NOTFOUND THEN dbms_output.put_line ('No records of English subject are updated');
ELSIF sql%FOUND THEN​ affected rows: = affected rows%rowcount
dbms_output.put_line('Congrats ..Records Updated' || affected_rows);
END IF;
END;
/

2. Explicitné kurzory

Explicitné kurzory sú tie kurzory, ktoré sú definované programátormi tak, aby mali väčšiu kontrolu nad kontextovou oblasťou (kde sa ukladajú výsledky dotazov SQL). Tieto kurzory musia byť najprv definované v deklaračnom bloku programu PL / SQL. Je vytvorený pre príkazy SQL, ktoré po spracovaní vrátia viac ako jeden riadok. Existuje špecifický postup, ktorý je potrebné dodržiavať pri používaní výslovného kurzora. Kroky na použitie explicitného kurzora sú uvedené nižšie:

1. Vyhláste kurzor: Používa sa na pomenovanie kontextovej oblasti / kurzora spolu s príkazom select, ktorý je potrebné vykonať.

syntax

CURSOR cursor_name IS SELECT statement;

2. Otvorte kurzor: Otvorením kurzora sa mu pridelí pamäť a sprístupní sa na načítanie záznamov vrátených príkazom SQL.

syntax

OPEN cursor_name;

3. Načítať kurzor: V tomto procese je prístup k jednému riadku súčasne. Vykoná sa príkaz SELECT a vyvolané riadky sa uložia do kontextovej oblasti. Získava záznamy a priraďuje ich definovanej premennej.

syntax

FETCH cursor_name INTO variable;

4. Zatvorte kurzor: Tento krok sa používa na zatvorenie kurzora otvoreného vyššie na pridelenie pamäte po úspešnom načítaní všetkých uložených riadkov.

syntax

CLOSE cursor_name;

príklad

Scenár: Načítajte meno, adresu a celkové percento študentov v tabuľke

„študent“, ktorý má stĺpce „meno“, „adresa“ a „percento“

DECLARE
stud_name student.name%type; stud_address student.address%type;
stud_percentage student.percentage%type;
CURSOR stud IS SELECT name, address, percentage FROM student; BEGIN
Open stud;
LOOP
FETCH stud into stud_name, stud_address, stud_percentage;
EXIT when stud%NOTFOUND;
dbms_ouput.put_line(stud_name || ' ' || stud_address || ' ' || stud_percentage);
END LOOP;
CLOSE stud;
END
/

Kurzorové akcie

Na rozdiel od SQL, ktorý pracuje na všetkých riadkoch vo výslednej množine súčasne, kurzor sa používa hlavne v scenároch, keď programátor chce spracovať a načítať údaje naraz z jedného riadku.

Nižšie sú uvedené niektoré z akcií kurzora:

  1. Vyhlásiť kurzor: Pred použitím kurzora je dôležité deklarovať kurzor. Kurzor je deklarovaný definovaním príkazu SQL, ktorý je potrebné spracovať.
  2. Otvoriť kurzor: Po deklarácii sa kurzor vráti a vyplní návratom údajov spracovaním príkazu SQL.
  3. Načítať kurzor: Po otvorení kurzora je potrebné priviesť výstupné riadky jeden po druhom, aby sa v prípade potreby vykonala manipulácia.
  4. Zatvorte kurzor: Po všetkej manipulácii s údajmi. Vytvorený kurzor musí byť uzavretý
  5. Deallocate: Tento krok zahŕňa odstránenie kurzora a uvoľnenie všetkých zdrojov, ktoré obsahuje.

Dôležitosť kurzora v PL / SQL

Ukazovanie na umiestnenie pamäte a podľa toho vykonávanie akcií je jednou z dôležitých úloh v akomkoľvek programovacom jazyku. V PL / SQL sa to robí pomocou kurzora. Kurzory hrajú rozhodujúcu úlohu pri vykonávaní rôznych úloh tým, že pomenujú oblasť pamäte (kontextová oblasť), kde sa ukladajú výsledky dotazov SQL. K záznamom môžeme pristupovať jeden po druhom a podľa potreby vykonávať akékoľvek manipulácie s nimi alebo ich podľa toho zobraziť na konzole. Explicitné kurzory sú efektívnejšie, poskytujú väčšiu programovú kontrolu a sú menej citlivé na chyby údajov, takže sú veľmi užitočné pri programovaní PL / SQL ako implicitné.

záver

Programovanie databázy je v súčasnosti veľmi populárne a PL / SQL je jedným z jazykov, ktoré by sa v ňom mali veľmi dobre používať. Kurzory dávajú programátorovi väčšiu kontrolu nad prístupom k získaným údajom. Pre programátorov, ktorí pracujú s PL / SQL, je dôležité poznať použitie a dôležitosť Cursoru pre efektívnu prácu.

Odporúčané články

Toto je príručka pre kurzory v PL / SQL. Tu diskutujeme typy kurzorov používaných v programovaní PL / SQL pomocou kurzora a dôležitosť kurzora. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Typy pripojení v SQL
  2. SQL Vložiť dotaz
  3. Tabuľka v SQL
  4. Zástupný znak v SQL
  5. Top 6 typov spojení v MySQL s príkladmi