Creative Saplings

PL / SQL – Markører (Norsk)

januar 30, 2021
No Comments
Annonser

I dette kapitlet vil vi diskutere markørene i PL / SQL. Oracle oppretter et minneområde, kjent som kontekstområdet, for behandling av en SQL-setning, som inneholder all informasjonen som trengs for å behandle utsagnet; for eksempel antall rader som er behandlet osv.

En markør er en peker til dette kontekstområdet. PL / SQL styrer kontekstområdet gjennom en markør. En markør holder radene (en eller flere) returnert av en SQL-setning. Settet med rader markøren har, blir referert til som det aktive settet.

Du kan navngi en markør slik at det kan bli referert til det i et program for å hente og behandle radene som returneres av SQL-setningen av gangen. Det er to typer markører –

  • Implisitte markører
  • Eksplisitte markører

Implisitte markører

Implisitte markører blir automatisk opprettet av Oracle når en SQL-setning kjøres, når det ikke er noen eksplisitt markør for setningen. Programmerere kan ikke kontrollere de implisitte markørene og informasjonen i den.

Hver gang en DML-setning (INSERT, UPDATE og DELETE) blir utstedt, er en implisitt markør tilknyttet denne utsagnet. For INSERT-operasjoner inneholder markøren dataene som må settes inn. For OPPDATERING og SLETT-operasjoner identifiserer markøren radene som vil bli berørt.

I PL / SQL kan du referere til den siste implisitte markøren som SQL-markøren, som alltid har attributter som% FOUND ,% ISOPEN,% NOTFOUND og% ROWCOUNT. SQL-markøren har flere attributter,% BULK_ROWCOUNT og% BULK_EXCEPTIONS, designet for bruk med FORALL-setningen. Tabellen nedenfor gir en beskrivelse av de mest brukte attributtene –

S.No Attributt & Beskrivelse
1

% Funnet

Returnerer SANT hvis en INSERT-, UPDATE- eller DELETE-setning påvirket en eller flere rader eller en SELECT INTO-setning returnerte en eller flere rader. Ellers returnerer den FALSE.

2

% NOTFOUND

Det logiske motsatte av% FOUND. Den returnerer SANT hvis en INSERT-, UPDATE- eller DELETE-setning ikke påvirket noen rader, eller en SELECT INTO-setning returnerte ingen rader. Ellers returnerer den FALSE.

3

% ISOPEN

Returnerer alltid FALSE for implisitte markører, fordi Oracle lukker SQL-markøren automatisk etter å ha utført den tilknyttede SQL-setningen.

4

% ROWCOUNT

Returnerer antall rader som er berørt av en INSERT-, UPDATE- eller DELETE-setning, eller returneres av en SELECT INTO-setning.

Enhver SQL-markørattributt blir tilgjengelig som sql% attributtnavn som vist nedenfor i eksemplet.

Eksempel

Vi bruker KUNDER-tabellen vi hadde opprettet og brukt i de foregående kapitlene.

Det følgende programmet vil oppdatere tabellen og øke lønnen til hver kunde med 500 og bruke SQL% ROWCOUNT-attributt for å bestemme antallet berørte rader –

Når koden ovenfor kjøres ved SQL-ledeteksten, gir den følgende resultat –

6 customers selected PL/SQL procedure successfully completed. 

Hvis du sjekker postene i kundetabellen, vil du oppdage at radene er oppdatert –

Eksplisitte markører

Eksplisitte markører er programmererdefinerte markører for å få mer kontroll over kontekstområdet. En eksplisitt markør bør defineres i erklæringsdelen av PL / SQL-blokken. Den opprettes på en SELECT-uttalelse som returnerer mer enn én rad.

Syntaksen for å opprette en eksplisitt markør er –

CURSOR cursor_name IS select_statement; 

Arbeider med en eksplisitt markør inkluderer følgende trinn –

  • Deklarere markøren for initialisering av minnet
  • Åpne markøren for tildeling av minnet
  • Hente markøren for henting av data
  • Lukking av markøren for å frigjøre det tildelte minnet

Erklæring om markøren

Erklæring av markøren definerer markøren med et navn og tilhørende SELECT-setning. For eksempel –

CURSOR c_customers IS SELECT id, name, address FROM customers; 

Åpne markøren

Åpne markøren tildeler minnet til markøren og gjør den klar for å hente de returnerte radene av SQL-setningen inn i den. For eksempel åpner vi den definerte markøren ovenfor som følger –

OPEN c_customers; 

Henter markøren

Å hente markøren innebærer tilgang til en rad kl. en gang. For eksempel vil vi hente rader fra den ovennevnte markøren som følger –

FETCH c_customers INTO c_id, c_name, c_addr; 

Lukke markøren

Å lukke markøren betyr å slippe det tildelte minnet.For eksempel vil vi lukke den ovenfor åpnede markøren som følger –

CLOSE c_customers;

Eksempel

Følgende er et komplett eksempel for å illustrere konseptene av eksplisitte markører & minua;

Når koden ovenfor kjøres ved SQL-ledeteksten, gir den følgende resultat –

1 Ramesh Ahmedabad 2 Khilan Delhi 3 kaushik Kota 4 Chaitali Mumbai 5 Hardik Bhopal 6 Komal MP PL/SQL procedure successfully completed. 
Annonser

Articles
Previous Post

Sustanon 250 Cycle (Norsk)

Next Post

Hvor mye data Netflix bruker - hvordan kontrollere det og bruke mindre

Legg igjen en kommentar Avbryt svar

Siste innlegg

  • De beste fotografiskolene i verden, 2020
  • Suverene borgere tar sin regjeringsfilosofi til veiene
  • Veiledning for stukkaturreparasjon
  • Muckrakers (Norsk)
  • Precision Oncology (Norsk)

Arkiv

  • februar 2021
  • januar 2021
  • desember 2020
  • november 2020
  • oktober 2020
  • september 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.