PL / SQL markör för LOOP

0 Comments

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


Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *