Uvod u kursore u PL / SQL

PL / SQL jedan je od najčešće korištenih programskih jezika kada je u pitanju programiranje baza podataka. Neke važne koncepte PL / SQL programer PL / SQL mora naučiti i jasno razumjeti kako bi ih pravilno koristio. Kursor je jedan od njih. U PL / SQL programu na kraju se moraju izvršiti SQL izrazi. Kursor je poput pokazivača koji se koristi za usmjeravanje na kontekstno područje, koje je Oracle stvorio za izvršavanje SQL izraza. Kursor sadrži sve retke vraćene nakon obrade SQL izraza. Skup retka koji drži pokazivač naziva se aktivnim skupom. Kursor se također može imenovati da ga programer dalje koristi u programu. U ovoj ćemo temi naučiti o Kursorima u PL / SQL-u.

Vrste kursori

Postoje 2 vrste kursora koji se koriste u PL / SQL programiranju:

1. Implicitivni kursori

Kao što ime govori, implicirani kursori su oni kursori koje automatski kreira Oracle kad se izvrše bilo koji DML iskaz poput INSERT, DELETE, UPDATE. Kad programer ne stvori nijedan pokazivač, Oracle sam po sebi kreira da drži redove na koje utječu DML izrazi. Programer ne može imenovati ove kursore, pa ih stoga ne mogu uputiti i koristiti na nekom drugom mjestu u kodu. Iako Oracle daje neke atribute za izvođenje nekih operacija na njemu poput

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

S.No.AtributOpis
1.%PRONAĐENOVraća true ako DML izjave poput INSERT,

DELETE, UPDATE utječu na jedan ili više redaka ili naredba SELECT vraća jedan ili više redaka. U suprotnom, vraća Lažno

2.%NIJE PRONAĐENOSuprotno je atributu% FOUND, vraća se true ako izjava DML ne utječe na bilo koji redak ili naredba SELECT ne daje rezultata. U suprotnom, vraća Lažno.
3.%OTVORENO JEU slučaju implicitnih pokazivača, uvijek se vraća False jer Oracle zatvara pokazivač neposredno nakon izvršenja SQL izraza.
4.% ROWCOUNTVraća broj redaka. Tj. Računanje broja redaka na koje utječe spomenuti DML
izjave programera u PL / SQL kodu kao što su INSERT, DELETE i UPDATE ili broj redova koji su vraćeni naredbom SELECT INTO.
Primjer

Scenarij: Ažurirati ocjene svih učenika u tablici 'student' na engleskom Predmetu koji sadrži stupac '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. eksplicitni kursori

Izričiti kursori su oni kursori koje programeri definiraju kako bi imali veću kontrolu nad kontekstualnom površinom (gdje su pohranjeni rezultati SQL upita). Te kursore potrebno je najprije definirati u bloku deklaracije programa PL / SQL. Izrađen je za SQL izraze koji vraćaju više redaka nakon obrade. Postoji poseban postupak koji se treba pridržavati za upotrebu eksplicitnog kursora. U nastavku su navedeni koraci za korištenje eksplicitnog pokazivača:

1. Proglasite pokazivač: koristi se za davanje imena kontekstnom području / pokazivaču, zajedno s odabranom izjavom koju je potrebno izvršiti.

Sintaksa

CURSOR cursor_name IS SELECT statement;

2. Otvorite pokazivač: Otvarajući pokazivač, raspoređuje mu memoriju i stavlja ga na raspolaganje za dohvaćanje zapisa vraćenih u SQL izraz.

Sintaksa

OPEN cursor_name;

3. Dohvaćanje pokazivača: ovom procesu pristupa se jednom retku. Izjava SELECT se izvršava i dohvaćeni redovi se spremaju u kontekstno područje. Dohvaća zapise i dodjeljuje ih definiranoj varijabli.

Sintaksa

FETCH cursor_name INTO variable;

4. Zatvorite pokazivač: ovaj se korak koristi za zatvaranje kursora otvoren gore radi razmještanja memorije nakon uspješnog dohvaćanja svih spremljenih redaka.

Sintaksa

CLOSE cursor_name;

Primjer

Scenarij: U tablici dohvatite ime, adresu i ukupni postotak učenika

'student' sa stupovima 'ime', 'adresa' i 'postotak'

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
/

Radnje kursora

Za razliku od SQL-a koji radi u svim redovima u rezultatima postavljenim odjednom, pokazivač se uglavnom koristi u scenarijima kada programer želi obraditi i dohvatiti podatke jednog retka odjednom.

Ispod su navedene neke od akcija kursora:

  1. Proglašavanje kursora: Važno je deklarisati pokazivač prije upotrebe. Pokazivač se proglašava definiranjem SQL izraza koji se mora obraditi.
  2. Otvaranje pokazivača: Nakon deklariranja, pokazivač se otvara i popunjava povratkom podataka obradom SQL izraza.
  3. Dohvati kursor: Nakon otvaranja kursora, izlazni redovi trebaju biti preuzeti jedan po jedan da bi izveli bilo kakve manipulacije, ako su potrebne.
  4. Zatvorite kursor: nakon svih manipulacija podacima. Kursor stvoren treba zatvoriti
  5. Dodeli račun: ovaj korak uključuje brisanje pokazivača i oslobađa sve resurse koje posjeduje.

Važnost pokazivača u PL / SQL

Pokazivanje mjesta na memoriji i izvršavanje radnji u skladu s tim jedan je od važnih zadataka u bilo kojem programskom jeziku. U PL / SQL, to rade Cursors. Kursori igraju ključnu ulogu kada je u pitanju izvršavanje različitog zadatka davanjem imena memorijskom području (kontekstnom području) gdje se spremaju rezultati SQL upita. Zapisima možemo pristupiti jedan za drugim i po potrebi izvršiti bilo kakve manipulacije u njemu ili ih prikazati na konzoli. Eksplicitni kursori su učinkovitiji, daju više programske kontrole i manje su ranjivi na podatkovnim pogreškama, tako da su korisni u PL / SQL programiranju od implicitnih.

Zaključak

Programiranje baza podataka danas je vrlo popularno, a PL / SQL je jedan od jezika koji bi se u njemu trebali dobro koristiti. Kursori daju veću kontrolu programeru za pristup preuzetim podacima. Da bi programer radio na PL / SQL, važno je znati uporabu i važnost Cursora za učinkovit rad.

Preporučeni članci

Ovo je vodič za kursore u PL / SQL. Ovdje raspravljamo o vrstama kursora koji se koriste u PL / SQL programiranju s Radnjama kursora i važnosti pokazivača. Možete također pogledati sljedeće članke da biste saznali više -

  1. Vrste pridruživanja u SQL-u
  2. SQL upit za umetanje
  3. Tablica u SQL-u
  4. Zamjenski znak u SQL-u
  5. Top 6 vrsta pridruživanja u MySQL-u s primjerima

Kategorija: