Introduksjon til markører i PL / SQL

PL / SQL er et av de mest brukte programmeringsspråk når det kommer til databaseprogrammering. Noen viktige konsepter av PL / SQL trenger å lære og forstå tydelig av en PL / SQL-programmerer for å bruke dem riktig. Markøren er en av dem. I PL / SQL-programmet må SQL-setninger utføres på slutten. Markøren er akkurat som en peker som brukes til å peke kontekstområdet, opprettet av Oracle for å utføre SQL-setningen. En markør har alle radene som er returnert etter behandlingen av SQL-setninger. Settet med raden som holdes av markøren blir referert til som aktivt sett. Markøren kan også navngis til å bruke den videre i programmet av en programmerer. I dette emnet skal vi lære om markører i PL / SQL.

Typer markører

Det er to typer markører som brukes i PL / SQL-programmering:

1. Implisitte markører

Som navnet indikerer, er implisitte markører de markørene som opprettes automatisk av Oracle når DML-setninger som INSERT, DELETE, UPDATE blir kjørt. Når programmereren ikke lager noen markør, oppretter Oracle i seg selv for å holde radene som er berørt av DML-setningene. Disse markørene kan ikke navngis av programmereren, og kan derfor ikke henvises og brukes på et annet sted i kode. Skjønt Oracle gir noen attributter for å utføre noen operasjoner på det som

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

S.No.EgenskapBeskrivelse
1.%FUNNETReturnerer sant hvis DML-setninger som INSERT,

SLETT, OPPDATERING påvirker en eller flere rader eller VELG setningen returnerer en eller flere rader. Ellers returnerer det usant

2.%IKKE FUNNETDet er motsatt av% FOUND attributt, det returnerer sant hvis ingen av radene er påvirket av DML-setning eller SELECT-setning gir ingen resultater. Ellers returnerer det usant.
3.%ER ÅPENNår det gjelder implisitte markører, returnerer den alltid usann fordi Oracle lukker markøren like etter utførelsen av SQL-setninger.
4.% ROWCOUNTDet returnerer radtellingen. Det vil si antallet antall rader som er berørt av den nevnte DML
utsagn fra programmereren i PL / SQL-koden som INSERT, DELETE og UPDATE eller antall rader som returneres av SELECT INTO-setningen.
Eksempel

Scenario: Å oppdatere merkene til alle elever i en tabell 'student' på engelsk Emne med kolonne 'emne' innen 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. Eksplisitte markører

Eksplisitte markører er markørene som er definert av programmerere for å ha mer kontroll over kontekstområdet (der resultatene fra SQL-spørringer er lagret). Disse markørene må først defineres i deklarasjonsblokken til PL / SQL-programmet. Det er opprettet for SQL-setningene som returnerer mer enn en rad etter å ha behandlet dem. Det er en spesifikk prosedyre som må følges for bruk av en eksplisitt markør. Trinn for å bruke eksplisitt markør er nevnt nedenfor:

1. Angi markøren: Den brukes til å gi et navn til kontekstområdet / markøren sammen med valgt uttalelse som må utføres.

syntax

CURSOR cursor_name IS SELECT statement;

2. Åpne markøren: Åpne en markør, tildeler minnet til den og gjør den tilgjengelig for å hente postene som er returnert av SQL-setningen.

syntax

OPEN cursor_name;

3. Hent markøren: I denne prosessen får du tilgang til en rad om gangen. SELECT-setningen utføres, og de hentede radene lagres i kontekstområdet. Den henter postene og tilordner dem til en definert variabel.

syntax

FETCH cursor_name INTO variable;

4. Lukk markøren: Dette trinnet brukes til å lukke markøren åpnet ovenfor for å fordele minnet når alle radene som er lagret er hentet.

syntax

CLOSE cursor_name;

Eksempel

Scenario: Hent navn, adresse og samlet prosentandel av elevene i en tabell

'student' som har kolonner 'navn', 'adresse' og 'prosent'

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 motsetning til SQL som fungerer på alle radene i et resultatsett om gangen, brukes markøren hovedsakelig i scenariene når programmereren ønsker å behandle og hente dataene fra en rad om gangen.

Nedenfor nevnt er noen av markørhandlingene:

  1. Forklar en markør: Det er viktig å erklære en markør før du bruker den. En markør deklareres ved å definere SQL-setningen som må behandles.
  2. Åpne en markør: Etter erklæring blir en markør åpnet og befolket av dataenes retur ved behandlingen av SQL-setningen.
  3. Hent en markør: Etter at markøren er åpnet, må outputradene hentes én etter én for å utføre eventuell manipulering om nødvendig.
  4. Lukk en markør: Etter all datamanipulering. En markør som er opprettet, må lukkes
  5. Deallocate: Dette trinnet inkluderer sletting av markøren og frigjør alle ressursene som den har.

Betydningen av markøren i PL / SQL

Å peke på minneplassen og utføre handlinger deretter er en av de viktige oppgavene i ethvert programmeringsspråk. I PL / SQL gjøres det av markører. Markører spiller en avgjørende rolle når det gjelder å utføre den forskjellige oppgaven ved å gi et navn til minneområdet (kontekstområdet) der resultatet av SQL-spørsmål blir lagret. Vi kan få tilgang til postene en etter en og utføre eventuelle manipulasjoner i den hvis det er nødvendig eller vise dem på konsollen deretter. Eksplisitte markører er mer effektive, gir mer programmatisk kontroll og mindre sårbare for datafeil, så de er veldig nyttige i PL / SQL-programmering enn implisitte.

Konklusjon

Databaseprogrammering er veldig populært i disse dager, og PL / SQL er et av språkene som bør brukes veldig godt i den. Markører gir programmereren mer kontroll for å få tilgang til dataene som er hentet. For at en programmerer skal jobbe med PL / SQL, er det viktig å vite bruken og viktigheten av markøren for å fungere effektivt.

Anbefalte artikler

Dette er en guide til markører i PL / SQL. Her diskuterer vi hvilke typer markører som brukes i PL / SQL-programmering med markørhandlinger og viktigheten av markøren. Du kan også se på følgende artikler for å lære mer -

  1. Typer sammenføyninger i SQL
  2. SQL Sett inn spørring
  3. Tabell i SQL
  4. Jokertegn i SQL
  5. Topp 6 typer sammenføyninger i MySQL med eksempler