Sissejuhatus kursoritesse PL / SQL-is

PL / SQL on andmebaaside programmeerimisel üks enim kasutatud programmeerimiskeeli. Mõningaid olulisi PL / SQL-kontseptsioone peab PL / SQL-programmeerija õppima ja neist selgelt aru saama, et neid õigesti kasutada. Kursor on üks neist. PL / SQL-programmis tuleb SQL-avaldused lõpus täita. Kursor on täpselt nagu osuti, mida kasutatakse kontekstiala osutamiseks ja mille Oracle on loonud SQL-i väljavõtte täitmiseks. Kursor hoiab kõiki SQL-lausete töötlemise järel tagastatud ridu. Rea komplekti, mida hoiab kursor, nimetatakse aktiivseks komplektiks. Kursori võib nimetada ka selleks, et seda programmeerija programmis edasi kasutada. Selles teemas õpime kursorite kohta PL / SQL-is.

Kursorite tüübid

PL / SQL programmeerimisel kasutatakse kahte tüüpi kursoreid:

1. Kaudsed kursorid

Nagu nimest selgub, on kaudsed kursorid need, mille Oracle loob automaatselt, kui täidetakse selliseid DML-avaldusi nagu INSERT, DELETE, UPDATE. Kui programmeerija ei loo kursorit, loob Oracle ise selle, et hoida DML-i avaldustega mõjutatud ridu. Programmeerija ei saa neid kursoreid nimetada ja seetõttu ei saa neid koodis teises kohas kasutada ega kasutada. Kuigi Oracle pakub mõningaid atribuute, et teha sellega mingeid toiminguid

% LEITUD, % EI OLE, % ROWCOUNT, % ISOPEN.

S.N.AtribuutKirjeldus
1% LEITUDTagastab tõesuse, kui DML-i avaldused nagu INSERT,

DELETE, UPDATE mõjutavad ühte või mitut rida või SELECT avaldus tagastab ühe või mitu rida. Vastasel juhul tagastab see vale

2%EI LEITUDSee on atribuudile% FOUND vastupidine. Tagastab väärtuse True, kui DML-avaldus ei mõjuta ühtegi rida või kui SELECT-lause ei anna tulemusi. Vastasel juhul tagastab see vale.
3%ON AVATUDKaudsete kursorite korral tagastab see alati vale (False), sest Oracle sulgeb kursori vahetult pärast SQL-i avalduste täitmist.
4% ROWCOUNTSee tagastab ridade arvu. St nende ridade arv, mida nimetatud DML mõjutab
programmeerija avaldused PL / SQL-koodis nagu INSERT, DELETE ja UPDATE või ridade arv, mis tagastatakse SELECT INTO avaldusega.
Näide

Stsenaarium: värskendada kõigi õpilaste hindeid inglise keeles tabelis „õpilane”, mille veerus „teema” on 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. Selgesõnalised kursorid

Selgesõnalised kursorid on need kursorid, mille programmeerijad on määranud omama suuremat kontrolli kontekstiala üle (kus talletatakse SQL päringute tulemusi). Need kursorid tuleb kõigepealt määratleda PL / SQL-programmi deklaratsiooniplokis. See on loodud SQL-i avalduste jaoks, mis tagastavad pärast töötlemist rohkem kui ühe rea. Selgesõnalise kursori kasutamiseks tuleb järgida konkreetset protseduuri. Allpool mainitakse selgesõnalise kursori kasutamist.

1. Kuulutage kursor: seda kasutatakse kontekstialale / kursorile nime andmiseks koos valitava avaldusega, mis tuleb täita.

Süntaks

CURSOR cursor_name IS SELECT statement;

2. Avage kursor: Avage kursor, eraldage sellele mälu ja tehke see kättesaadavaks SQL-i väljavõttega tagastatud kirjete hankimiseks.

Süntaks

OPEN cursor_name;

3. Tooge kursor: selles protsessis pääseb korraga juurde ühele reale. Käsk SELECT käivitatakse ja tõmmatud read salvestatakse kontekstialasse. See tõmbab kirjed ja määrab need määratletud muutujale.

Süntaks

FETCH cursor_name INTO variable;

4. Kursori sulgemine: seda sammu kasutatakse ülal avatud kursori sulgemiseks, et mälu uuesti paigutada, kui kõik salvestatud read on edukalt tõmmatud.

Süntaks

CLOSE cursor_name;

Näide

Stsenaarium: hankige tabelist õpilaste nimi, aadress ja üldine protsent

'õpilane', millel on veerud 'nimi', 'aadress' ja 'protsent'

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
/

Kursori toimingud

Erinevalt SQL-ist, mis töötab kõigil ridadel korraga seatud tulemustel, kasutatakse kursorit peamiselt stsenaariumides, kui programmeerija soovib töödelda ja hankida ühe rea andmeid korraga.

Allpool on toodud mõned kursori toimingud:

  1. Kursori kuulutamine: Enne selle kasutamist on oluline kursor kuulutada. Kursor kuulutatakse töödeldava SQL-lause määratlemisega.
  2. Kursori avamine: Pärast deklareerimist avatakse ja SQL-avalduse töötlemisel andmete tagastamisega kursor.
  3. Kursori toomine : pärast kursori avamist tuleb väljundriigid ükshaaval tõmmata, et vajadusel toiminguid teha.
  4. Kursori sulgemine: pärast kõigi andmetega manipuleerimist. Loodud kursor tuleb sulgeda
  5. Deallocate: see samm hõlmab kursori kustutamist ja vabastab kõik sellel olevad ressursid.

Kursori olulisus PL / SQL-is

Mäluasukohale osutamine ja vastavalt toimingute tegemine on mis tahes programmeerimiskeele oluline ülesanne. PL / SQL-is teevad seda kursorid. Kursorid mängivad erineva ülesande täitmisel üliolulist rolli, andes nime mälualale (kontekstialale), kuhu SQL päringute tulemused salvestatakse. Saame ükshaaval juurde pääseda dokumentidele ja vajadusel sellega manipuleerida või vastavalt konsoolile kuvada. Selgesõnalised kursorid on tõhusamad, annavad programmilisemat kontrolli ja on vähem tundlikud andmevigade suhtes, nii et need on PL / SQL-i programmeerimisel väga kasulikud kui kaudsed.

Järeldus

Andmebaaside programmeerimine on tänapäeval väga populaarne ja PL / SQL on üks keeltest, mida tuleks selles väga hästi kasutada. Kursorid võimaldavad programmeerijal rohkem kontrolli otsitud andmetele juurde pääseda. Et programmeerija töötaks PL / SQL-iga, on oluline teada kursori kasutamist ja olulisust efektiivseks tööks.

Soovitatavad artiklid

See on PL / SQL-i kursorite juhend. Siin käsitleme kursori tüüpe, mida PL / SQL programmeerimisel kasutatakse kursori toimingutega, ja kursori olulisust. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Liitumiste tüübid SQL-is
  2. SQL-i sisestuspäring
  3. Tabel SQL-is
  4. Metamärk SQL-is
  5. MySQL-i 6 parimat liitumistüüpi koos näidetega