PL / SQL Cursor voor LOOP

0 Comments

samenvatting: in deze tutorial leert u hoe u de PL/SQL cursor FOR LOOP statement gebruikt om elke record van een cursor op te halen en te verwerken.

Introduction to PL / SQL cursor FOR LOOP statement

de cursor FOR LOOP statement is een elegante uitbreiding van de numerieke FOR LOOP statement.

De numerieke FOR LOOP voert het lichaam van een lus eenmaal uit voor elke integer waarde in een opgegeven bereik., Evenzo voert de cursor FOR LOOP de body van de lus eenmaal uit voor elke rij die wordt geretourneerd door de query die aan de cursor is gekoppeld.

een mooie eigenschap van de cursor FOR LOOP statement is dat het u toestaat om elke rij van een cursor op te halen zonder de uitvoercyclus handmatig te beheren, d.w.z. OPEN, FETCH, en CLOSE.

de cursor FOR LOOP maakt impliciet zijn lus-index aan als een recordvariabele met het rijtype waarin de cursor terugkeert en dan de cursor opent.,

in elke lus iteratie, haalt de cursor FOR LOOP statement een rij van het resultaat in zijn lus index. Als er geen rij moet worden opgehaald, sluit de cursor FOR LOOP de cursor.

de cursor is ook gesloten als een statement binnen de lus controle buiten de lus overdraagt, bijvoorbeeld EXIT en GOTO, of een uitzondering opwerpt.,

Het volgende voorbeeld illustreert de syntaxis van de cursor FOR LOOP verklaring:

1) record

De record is de naam van de index die de cursor FOR LOOP verklaring verklaart impliciet als een %ROWTYPE record variabele van het type van de cursor.

derecord variabele is lokaal tot de cursorFOR LOOP statement. Het betekent dat je het alleen binnen de lus kunt verwijzen, niet buiten., Nadat de cursor FOR LOOP de uitvoering van het statement eindigt, wordt de variabele record niet gedefinieerd.

2) cursor_name

de cursor_name is de naam van een expliciete cursor die niet wordt geopend wanneer de lus begint.

merk op dat u naast de cursor naam een SELECT statement kunt gebruiken zoals hieronder getoond:

In dit geval declareert, opent, haalt van en sluit de cursor een impliciete cursor., De impliciete cursor is echter intern; daarom kun je er niet naar verwijzen.

merk op dat Oracle Database automatisch een cursor FOR LOOP optimaliseert om op dezelfde manier te werken als een BULK COLLECT query. Hoewel uw code eruit ziet alsof het een rij tegelijk ophaalt, haalt Oracle Database meerdere rijen tegelijk op en kunt u elke rij afzonderlijk verwerken.

PL/SQL cursor voor LUSVOORBEELDEN

laten we eens kijken naar enkele voorbeelden van het gebruik van de cursor FOR LOOP statement om te zien hoe het werkt.,

A) PL/SQL cursor voor lus voorbeeld

het volgende voorbeeld verklaart een expliciete cursor en gebruikt het in de cursor FOR LOOP statement.

in dit voorbeeld haalt het SELECT statement van de cursor gegevens op uit de products tabel. HetFOR LOOP statement is geopend, elke rij in de resultatenreeks opgehaald, de productinformatie weergegeven en de cursor gesloten.,

B) Cursor voor lus met een SELECT statement voorbeeld

het volgende voorbeeld is gelijk aan het bovenstaande voorbeeld, maar gebruikt een query in een cursor FOR LOOP statement.

in deze tutorial hebt u geleerd hoe u de PL/SQL cursor FOR LOOP gebruikt om gegevens van een cursor op te halen.

  • Was deze tutorial nuttig?
  • YesNo


Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *