PL/SQL Markør FOR-LØKKEN
Resumé: i denne tutorial vil du lære at bruge PL/SQL markøren FOR LOOP
erklæring for at hente og behandle alle optage fra en markør.
Introduktion til PL/SQL markør FOR LOOP-sætningen
markøren FOR LOOP
erklæring er en elegant forlængelse af det numeriske FOR LOOP
erklæring.
det numeriske FOR LOOP
udfører en sløjfes krop en gang for hver heltalsværdi i et bestemt område., Tilsvarende udfører markøren FOR LOOP
loopens krop en gang for hver række, der returneres af forespørgslen, der er knyttet til markøren.
En god funktion af markøren FOR LOOP
erklæring er, at det giver dig mulighed for at hente hver række fra markøren uden manuelt styre udførelsen cyklus, dvs, OPEN
FETCH
og CLOSE
.
markøren FOR LOOP
opretter implicit sit loopindeks som en postvariabel med den rækketype, som markøren vender tilbage i, og åbner derefter markøren.,
i hver loop-iteration henter markøren FOR LOOP
– erklæring en række fra det resultat, der er indstillet til dets loopindeks. Hvis der ikke er nogen række at hente, lukker markøren FOR LOOP
markøren.
markøren er også lukket, hvis en erklæring inde i sløjfen overfører kontrol uden for sløjfen, f.eks. EXIT
og GOTO
, eller rejser en undtagelse.,
Det illustrerer følgende syntaks for markøren FOR LOOP
erklæring:
1) post
record
er navnet på indekset for, at markøren FOR LOOP
redegørelse erklærer implicit som en %ROWTYPE
optag variabel af typen af markøren.
variablenrecord
er lokal for markørenFOR LOOP
erklæring. Det betyder, at du kun kan henvise til det inde i løkken, ikke udenfor., Når markøren FOR LOOP
udsagnsudførelse slutter, bliver variablen record
udefineret.2) cursor_name
cursor_name
er navnet på en eksplicit markør, der ikke åbnes, når sløjfen starter.
Bemærk, at der udover markøren navn, kan du bruge en SELECT
erklæring, som vist nedenfor:
I dette tilfælde, markøren FOR LOOP
erklærer, åbner, henter fra, og lukker en implicit markøren., Den implicitte markør er dog intern; derfor kan du ikke henvise til den.
Bemærk, at Oracle-Database, der automatisk optimerer en markør FOR LOOP
for at arbejde på samme måde som en BULK COLLECT
forespørgsel. Selvom din kode ser ud som om den hentede en række ad gangen, henter Oracle Database flere rækker ad gangen og giver dig mulighed for at behandle hver række individuelt.
PL/SQL markør FOR-LØKKE eksempler
Lad os se på nogle eksempler på brug af markøren FOR LOOP
erklæring for at se, hvordan det virker.,
A) PL/SQL markør FOR-LØKKE eksempel
følgende eksempel erklærer en eksplicit markør og bruger det i markøren FOR LOOP
erklæring.
i dette eksempel henter SELECT
sætning af markøren data fra products
tabel. Sætningen FOR LOOP
åbnede, hentede hver række i resultatsættet, viste produktinformationen og lukkede markøren.,
B) Cursor FOR LOOP med et SELECT statement eksempel
følgende eksempel svarer til eksemplet ovenfor, men bruger en forespørgsel i en cursor FOR LOOP
statement.
i denne vejledning har du lært, hvordan du bruger PL/S .l-markøren FOR LOOP
til at hente data fra en markør.
- var denne vejledning nyttig?
- YesNo