2009-07-22 2 views
0

in Plsql sah ich eine Verwendung für Schleife ohne den Schleifenindex zu definieren, und die Datenbank kann korrekt ausgeführt werden. aber ich kann die Beschreibung dieser Syntax in Orakeldokumentation nicht finden. kann jemand das erklären? vielen Dank!in Plsql, sah ich einige eine Verwendung für Schleife ohne den Schleifenindex zu definieren, warum? Wie?

der folgende Code ist ein Beispiel, bemerken die inner_c nicht definiert ist:

declare 
    v_current_nr NUMBER; 
begin 
    v_current_nr:=0; 

    loop 
     for inner_c in 1..4 
     loop 
      DBMS_OUTPUT.put_line(v_current_nr); 
     end loop; 

     v_current_nr:=v_current_nr+5; 
     exit when v_current_nr>25; 
    end loop; 
end; 
+0

Sie für docs gestellt: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/controlstructures.htm#sthref945 –

+0

Mehr technische Spezifikation: http: // Download .oracle.com/docs/cd/B19306_01/appdev.102/b14261/loop_statement.htm # i34785 –

Antwort

3

inner_c für die Schleife als Griff/Variable verwendet wird. Wenn Sie DBMS_OUTPUTed, würden Sie sehen, dass es in diesem Fall die Zahlen 1 - 4 durchlaufen hat.

Es wird implizit als Teil des Loop-Mechanismus deklariert. Es wird außerhalb des Bereichs fallen, wenn die Schleife vorbei ist.

0

Was genau meinen Sie "den Schleifenindex"?

können Sie haben: For i in 1..5 , die ich die Werte von 1 bis 5

Aber Sie auch haben gibt:

For record in myCursor Loop 
    record.myField 
End Loop 

, die jedes Mal eine Zeile des Cursors zurück. Vielleicht können Sie ein Beispiel dafür geben, was Sie gesehen haben?

http://www.techonthenet.com/oracle/loops/for_loop.php

Verwandte Themen