PL / SQL markör för LOOP
sammanfattning: i den här guiden kommer du att lära dig att använda PL / SQL markör FOR LOOP
uttalande för att hämta och bearbeta varje post från en markör.
introduktion till PL/SQL markör för LOOP-sats
markörenFOR LOOP
uttalande är en elegant förlängning av den numeriskaFOR LOOP
uttalande.
den numeriskaFOR LOOP
utför kroppen av en slinga en gång för varje heltal värde i ett visst område., På samma sätt kör markören FOR LOOP
slingans kropp en gång för varje rad som returneras av frågan som är associerad med markören.
ett trevligt inslag i markörenFOR LOOP
uttalande är att det tillåter dig att hämta varje rad från en markör utan att manuellt hantera körcykeln dvsOPEN
,FETCH
, ochCLOSE
.
markören FOR LOOP
skapar implicit sitt loopindex som en postvariabel med den radtyp som markören returnerar och öppnar sedan markören.,
i varje loop iteration hämtar markörenFOR LOOP
– satsen en rad från resultatet i dess loopindex. Om det inte finns någon rad att hämta stänger markören FOR LOOP
markören.
markören stängs också om ett uttalande inuti slingan överför kontrollen utanför slingan, t.ex. EXIT
och GOTO
, eller höjer ett undantag.,
följande illustrerar syntaxen för markörenFOR LOOP
uttalande:
1) post
record
är namnet på indexet som markörenFOR LOOP
uttalande förklarar implicit som en%ROWTYPE
postvariabel av typen av markören.
variabelnrecord
är lokal för markörenFOR LOOP
. Det betyder att du bara kan referera till den inuti slingan, inte utanför., När markören FOR LOOP
– sats exekvering avslutas record
– variabeln blir odefinierad.
2) cursor_name
cursor_name
är namnet på en explicit markör som inte öppnas när slingan startar.
Observera att förutom markörnamnet kan du använda ett SELECT
– uttalande som visas nedan:
i det här fallet förklarar markören FOR LOOP
, öppnar, hämtar från och stänger en implicit markör., Den implicita markören är dock intern; därför kan du inte referera till den.
Observera att Oracle-databasen automatiskt optimerar en markörFOR LOOP
för att fungera på samma sätt som enBULK COLLECT
– fråga. Även om din kod ser ut som om den hämtade en rad åt gången, hämtar Oracle Database flera rader åt gången och låter dig bearbeta varje rad individuellt.
PL/SQL markör för LOOP exempel
låt oss titta på några exempel på att använda markörenFOR LOOP
uttalande för att se hur det fungerar.,
A) PL/SQL markör för LOOP exempel
följande exempel förklarar en explicit markör och använder den i markörenFOR LOOP
uttalande.
i det här exemplet hämtarSELECT
– satsen för markören data från tabellenproducts
. FOR LOOP
– satsen öppnade, hämtade varje rad i resultatuppsättningen, visade produktinformationen och stängde markören.,
B) markör för LOOP med ett select statement exempel
följande exempel motsvarar exemplet ovan men använder en fråga i en markörFOR LOOP
statement.
i den här handledningen har du lärt dig hur du använder PL/SQL-markören FOR LOOP
för att hämta data från en markör.
- var den här handledningen till hjälp?
- YesNo