Articles

Oracle PL/SQL-Markøren: Implisitte, Eksplisitte, Markøren FOR-Løkke [Eksempel]

Hva er MARKØREN i PL/SQL?

En Markør er en peker til denne sammenhengen området. Oracle skaper sammenheng område for behandling av en SQL-setning som inneholder all informasjon om uttalelse.

PL/SQL lar programmereren å kontrollere kontekst-området gjennom markøren. En markør har rader som returneres av SQL-setningen. Sett av rader markøren har omtales som aktive settet., Disse markørene kan også bli navngitt slik at de kan bli henvist fra et annet sted i koden.

I denne opplæringen vil du lære-

– >

  • Implisitt Markøren
  • Eksplisitt Markøren
  • Markøren Attributter
  • FOR-Løkke Markøren uttalelse

markøren er av to typer.

  • Implisitt Markøren
  • Eksplisitt Markøren

Implisitt Markøren

Når alle DML-operasjoner forekommer i databasen, en implisitt markøren er opprettet som har rader som påvirkes i en bestemt operasjon., Disse markørene kan ikke bli navngitt, og dermed kan de ikke kontrolleres eller er henvist fra et annet sted i koden. Vi kan se bare på den siste markøren gjennom markøren attributter.

Eksplisitt Markøren

Programmerere er tillatt å opprette heter kontekst området for å utføre sine DML-operasjoner for å få mer kontroll over det. Den eksplisitte markøren skal være definert i erklæringen delen av PL/SQL-blokkere, og det er skapt for å ‘VELGE’ uttalelse som trenger å bli brukt i koden.

Nedenfor, er trinnene som er involvert i arbeidet med eksplisitt pekere.,

  • Erklære markøren

    Erklære markøren betyr ganske enkelt å lage en som heter sammenheng område for ‘VELG’ setning som er definert i erklæringen del. Navnet på denne sammenhengen området er de samme som markøren navn.

  • Åpne Markøren

    Åpne markøren vil instruere PL/SQL til å allokere minne for denne markøren. Det vil gjøre markøren klar til å hente poster.

  • Henting av Data fra Markøren

    I denne prosessen, ‘VELG’ uttalelse er utført og rader hentet er lagret i allokert minne., Disse er nå kalt inn som aktiv sett. Hente data fra markøren er på et rekordhøyt nivå aktivitet som betyr at vi kan få tilgang til data i en post-av-posten måte.

    Hver hente uttalelse vil hente en aktiv satt og inneholder informasjon om det aktuelle posten. Denne uttalelsen er samme som ‘VELG’ uttalelse som henter posten og tilordner den variable i ‘I’ klausul, men det vil ikke kaste noen unntak.

  • Lukke Markøren

    Når alle oppføringen er hentet nå, vi må lukke markøren slik at minne som er allokert til denne sammenhengen, vil bli utgitt.,

Syntaks:

  • I over syntaks, erklæring delen inneholder erklæring om at markøren og musepekeren variabel som hentet data vil bli tildelt.
  • markøren er skapt for å ‘VELGE’ uttalelse som er gitt i markør-erklæringen.
  • I utførelsen del, erklærte markøren er åpnet, hentet og lukket.

Markøren Attributter

Både Implisitt markøren og den eksplisitte markøren har visse egenskaper som kan åpnes. Disse egenskapene gir mer informasjon om markøren operasjoner., Nedenfor er de ulike markøren attributtene og deres bruk.

Markøren Attributt Beskrivelse
%FUNNET den returnerer Returnerer resultatet «EKTE» hvis det siste du hente drift hentet en spille inn riktig, ellers vil det returnere FALSE.
%NOTFOUND Dette fungerer motsatt til %FANT det vil tilbake «EKTE» hvis det siste du hente drift kunne ikke er i stand til å hente posten.,
%ISOPEN Den returnerer Returnerer resultatet «EKTE» hvis det gitt markøren er allerede åpnet, ellers returnerer ‘FALSE’
%ROWCOUNT den returnerer numerisk verdi. Det gir faktisk teller poster som ble berørt av DML-aktivitet.

Eksempel 1: I dette eksemplet skal vi se hvordan til å erklære, åpne, hent og nær eksplisitt markøren.

Vi vil prosjektet alle ansattes navn fra emp-tabell ved hjelp av en markør., Vi vil også bruke markøren attributtet til å sette løkken for å hente alle kort fra markøren.

Output

Employee Fetched:BBBEmployee Fetched:XXXEmployee Fetched:YYY Total rows fetched is 3

Kode Forklaring:

  • Kode linje 2: å Erklære markøren guru99_det for setningen «VELG emp_name FRA emp’.
  • Kode linje 3: Deklarere variable lv_emp_name.
  • Kode linje 5: Åpning markøren guru99_det.
  • Kode linje 6: konfigurere Grunnleggende loop-uttrykket til å hente alle postene i » emp » – tabellen.,
  • Kode linje 7: Henter guru99_det data og tilordne verdi til lv_emp_name.
  • Kode linje 9: Bruk markøren attributtet ‘%NOTFOUND » for å finne ut om alle rekord i markøren er hentet. Hvis hentet så vil det gå tilbake ‘SANNE’ og kontroll vil gå fra loop, annet kontroll vil holde på å hente data fra markøren og skrive ut data.
  • Kode linje 11: EXIT betingelse for loop-uttrykket.
  • Kode linje 12: skriv Ut de hentet ansattes navn.,
  • Kode linje 14: Bruk markøren attributtet ‘%ROWCOUNT » for å finne det totale antallet poster som ble berørt/hentes i markøren.
  • Kode linje 15: Etter at du går ut fra loop markøren er lukket og minne som er allokert er satt fri.

FOR-Løkke Markøren uttalelse

«FOR-LØKKE» uttalelse kan brukes for å arbeide med pekere. Vi kan gi markøren navn i stedet for utvalg grensen i FOR-løkke uttalelse slik at løkken vil arbeide fra den første posten for markøren til den siste posten for markøren., Markøren variabel, åpning av markøren, henting og lukking av markøren vil bli gjort automatisk av FOR-løkke.

Syntaks:

DECLARECURSOR <cursor_name> IS <SELECT statement>;BEGIN FOR I IN <cursor_name> LOOP . . END LOOP;END;
  • I over syntaks, erklæring del inneholder erklæringen av markøren.
  • markøren er skapt for å ‘VELGE’ uttalelse som er gitt i markør-erklæringen.
  • I utførelsen del, erklærte markøren er oppsett i FOR-loop og loop-variabelen ‘jeg’ vil oppføre seg som markøren variabel i dette tilfellet.,

Eksempel 1: I dette eksemplet, vi vil prosjektet alle ansattes navn fra emp-tabell ved hjelp av en markør-FOR-løkke.

Output

Employee Fetched:BBB Employee Fetched:XXXEmployee Fetched:YYY

Kode Forklaring:

  • Kode linje 2: å Erklære markøren guru99_det for setningen «VELG emp_name FRA emp’.
  • Kode linje 4: å Konstruere ‘FOR’ loop for markøren med loop variabel lv_emp_name.
  • Kode linje 5: Skrive navnet på den ansatte i hver iterasjon av loopen.,
  • Kode linje 8: Avslutte løkken

Merk: I Markør-FOR-løkke, markøren attributter kan ikke brukes siden åpningen, henting og lukking av markøren er gjort automatisk av FOR-løkke.