Introduktion til markører i PL / SQL

PL / SQL er et af de mest anvendte programmeringssprog når det kommer til databaseprogrammering. Nogle vigtige begreber med PL / SQL er nødt til at lære og forstå klart af en PL / SQL-programmør for at bruge dem korrekt. Markøren er en af ​​dem. I PL / SQL-programmet skal SQL-sætninger udføres i slutningen. Markøren er ligesom en markør, der bruges til at pege kontekstområdet, oprettet af Oracle til at udføre SQL-sætningen. En markør har alle de rækker, der er returneret efter behandlingen af ​​SQL-sætninger. Sættet med rækken, der holdes af markøren, kaldes aktivt sæt. Markøren kan også navngives til at bruge den videre i programmet af en programmerer. I dette emne skal vi lære om markører i PL / SQL.

Typer af markører

Der er 2 typer markører, der bruges til PL / SQL-programmering:

1. Implicitte markører

Som navnet antyder, er implicitte markører de markører, der automatisk oprettes af Oracle, når DML-sætninger som INSERT, DELETE, UPDATE udføres. Når programmereren ikke opretter nogen markør, opretter Oracle i sig selv den for at holde rækkerne, der er berørt af DML-sætningerne. Disse markører kan ikke navngives af programmereren, og kan derfor ikke henvises og bruges et andet sted i kode. Selvom Oracle leverer nogle attributter til at udføre nogle operationer på det som

% FUNDET, % NOTFOUND, % ROWCOUNT, % ISOPEN.

S.No.EgenskabBeskrivelse
1.% fundetReturnerer sandt, hvis DML-sætninger som INSERT,

SLET, UPDATE påvirker en eller flere rækker, eller SELECT-sætning returnerer en eller flere rækker. Ellers returnerer det usandt

2.%IKKE FUNDETDet er det modsatte af attributten% FOUND, det returnerer sandt, hvis ingen af ​​rækkerne er påvirket af DML-sætning, eller SELECT-sætning giver ingen resultater. Ellers returnerer det usandt.
3.%ER ÅBENI tilfælde af implicitte markører returnerer den altid usand, fordi Oracle lukker markøren lige efter udførelsen af ​​SQL-sætninger.
4.% ROWCOUNTDet returnerer række tællingen. Det vil sige antallet af antallet af rækker, der er påvirket af den nævnte DML
udsagn fra programmereren i PL / SQL-koden som INSERT, DELETE og UPDATE eller antallet af rækker, der returneres af SELECT INTO-sætningen.
Eksempel

Scenario: At opdatere alle studerendes karakterer i en tabel 'studerende' på engelsk Emne med kolonne 'emne' med 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. Eksplicitte markører

Eksplicitte markører er de markører, der er defineret af programmerere til at have mere kontrol over kontekstområdet (hvor resultaterne af SQL-forespørgsler gemmes). Disse markører skal først defineres i deklarationsblokken for PL / SQL-programmet. Det er oprettet til SQL-sætninger, der returnerer mere end en række efter at have behandlet dem. Der er en bestemt procedure, der skal følges for at bruge en eksplicit markør. Trin til brug af eksplicit markør er nævnt nedenfor:

1. Erklær markøren: Den bruges til at give et navn til kontekstområdet / markøren sammen med den valgte sætning, der skal udføres.

Syntaks

CURSOR cursor_name IS SELECT statement;

2. Åbn markøren: Åbning af en markør, allokerer hukommelsen til den og gør den tilgængelig for at hente posterne, der er returneret af SQL-sætningen.

Syntaks

OPEN cursor_name;

3. Hent markøren: I denne proces får du adgang til en række ad gangen. SELECT-sætningen udføres, og de hentede rækker gemmes i kontekstområdet. Det henter posterne og tildeler dem til en defineret variabel.

Syntaks

FETCH cursor_name INTO variable;

4. Luk markøren: Dette trin bruges til at lukke markøren, der er åbnet ovenfor, for at omfordele hukommelsen, når alle de lagrede rækker er hentet med succes.

Syntaks

CLOSE cursor_name;

Eksempel

Scenario: Hent navn, adresse og samlet procentdel af studerende i en tabel

'studerende' med kolonner 'navn', 'adresse' og 'procent'

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
/

Markørhandlinger

I modsætning til SQL, der fungerer på alle rækker i et resultatsæt ad gangen, bruges markøren hovedsageligt i scenarierne, når programmereren ønsker at behandle og hente dataene fra en række ad gangen.

Nedenfor er nævnt nogle af markørhandlingerne:

  1. Angiv en markør: Det er vigtigt at erklære en markør, før du bruger den. En markør deklareres ved at definere den SQL-sætning, der skal behandles.
  2. Åbn en markør: Efter erklæring åbnes en markør og befolkes af data-returneringen ved behandling af SQL-sætning.
  3. Hent en markør: Når markøren er åbnet, skal output-rækkerne hentes én efter én for at udføre enhver manipulation, hvis det er nødvendigt.
  4. Luk en markør: Efter al datamanipulationen. En oprettet markør skal lukkes
  5. Deallocate: Dette trin inkluderer sletning af markøren og frigør alle de ressourcer, den har.

Betydningen af ​​markøren i PL / SQL

At pege på hukommelsens placering og udføre handlinger i overensstemmelse hermed er en af ​​de vigtige opgaver i ethvert programmeringssprog. I PL / SQL udføres det af markører. Markører spiller en afgørende rolle, når det gælder udførelsen af ​​den forskellige opgave ved at give et navn til hukommelsesområdet (kontekstområdet), hvor resultatet af SQL-forespørgsler gemmes. Vi kan få adgang til posterne én efter én og udføre eventuelle manipulationer i dem, hvis det kræves, eller vise det på konsollen i overensstemmelse hermed. Eksplicitte markører er mere effektive, giver mere programmatisk kontrol og er mindre sårbare over for datafeil, så de er meget nyttige i PL / SQL-programmering end implicitte.

Konklusion

Databaseprogrammering er meget populær i disse dage, og PL / SQL er et af de sprog, der skal bruges meget godt på den. Markører giver programmereren mere kontrol for at få adgang til de hentede data. For en programmerer, der skal arbejde med PL / SQL, er det vigtigt at kende brugen og vigtigheden af ​​markøren til at arbejde effektivt.

Anbefalede artikler

Dette er en guide til markører i PL / SQL. Her diskuterer vi de typer markører, der bruges i PL / SQL-programmering med markørhandlinger og betydningen af ​​markøren. Du kan også se på de følgende artikler for at lære mere -

  1. Typer af sammenføjninger i SQL
  2. SQL Indsæt forespørgsel
  3. Tabel i SQL
  4. Jokertegn i SQL
  5. Top 6 typer sammenføjninger i MySQL med eksempler