PL-SQL: Schleifen

Aus Wikibooks


Das Buch PL-SQL ist zurzeit in Überarbeitung! Änderungen an dieser Seite nur in Absprache mit mir.

Wie in jeder Sprache unterstützt auch PL/SQL Schleifen. Um richtig in die Programmierung einzusteigen, wollen wir hier zuallererst zwischen kopf- und fußgesteuerten Schleifen unterscheiden.

  • Loop --- Until
  • While
  • For - Schleifen

Beispiele LOOP --- UNTIL:

(PL/SQL kennt keine REPEAT/UNTIL Konstruktion, stattdessen kann mit Hilfe der EXIT-Anweisung eine Schleife an beliebiger Stelle abgebrochen werden.)

Declare
  x NUMBER := 1;
Begin
  Loop
     DBMS_OUTPUT.put_line( x );
     X := X + 1;
     EXIT WHEN x > 10;
  End Loop;
End;
 

Die Schleife wird solange ausgeführt, bis die Abbruchbedingung erfüllt ist. Die EXIT Bedingung kann an jeder beliebigen Stelle innerhalb der Schleife verwendet werden. Es ist zu beachten, daß bei unkorrekter Verwendung eine Endlosschleife ausgeführt wird. Wird die EXIT Bedingung am Beginn der Schleife verwendet, entspricht es einer WHILE Schleife.

Lesbarer ist allerdings die 'echte' WHILE Schleife:

Declare
  x NUMBER := 1;
Begin
  While X < 11 Loop
     DBMS_OUTPUT.put_line( x );
     X := X + 1;
  End Loop;
End;

Hier ein Beispiel für eine einfache FOR Schleife:

Declare
  -- Indexvariablen müssen nicht deklariert werden;
  -- bei X handelt es sich immer um eine ganze Zahl.
Begin
  For X IN 1 .. 10 Loop
    DBMS_OUTPUT.put_line( x );
  End Loop;
End;

Die Schleife wird genau 10 mal ausgeführt.