ZuweisungVariable := Ausdruck; Beispiel:
Man betrachte die folgende Zuweisung:
Die Variable a wird nach der Zuweisung den Wert NULL enthalten, wenn entweder b oder c den Wert NULL enthalten! Bedingte Verzweigungif - then
Zwischen then und end if muß mindestens ein Befehl stehen (oder der leere Befehl: NULL;) if - then - else
if - then - elsif
Sprung (goto)
Definition von Sprungmarken: <<Sprungmarke>> Eine Sprungmarke muß unmittelbar vor einem ausführbaren Befehl definiert werden (also nicht end, end if ...). GOTO - Befehl GOTO Sprungmarke Beispiel:
Einschränkungen Eine GOTO - Anweisung kann nur zu einem Label verzweigen, das auf der gleichen oder einer höheren Verarbeitungsebene steht. So ist es z.B. nicht erlaubt, von außen in eine Verzweigung, Schleife oder Block zu springen. Beispiel:
Es ist nicht erlaubt, aus einem Exception Handler herauszuspringen:
SchleifenEXIT - Befehl
Der EXIT - Befehl bewirkt das Verlassen der aktuellen Schleife. Es wird nach dem END LOOP - Befehl fortgefahren. Der Befehl ist nur im Schleifen - Kontext nutzbar, es ist nicht möglich, z.B. eine verschachtelte IF - Abfrage oder einen Block mit dem EXIT - Befehl zu verlassen. Dazu dient das GOTO - Statement. EXIT WHEN - BefehlEXIT WHEN <boolscher Ausdruck>; Die Schleife wird nur verlassen, wenn eine Bedingung erfüllt ist. Es ist dies eine Kurzschreibweise für:
Unbedingte Schleife (loop)
Es handelt sich generell um eine Endlos - Schleife. Sie muß mit dem EXIT - Befehl verlassen werden. Schleifenmarken Um bei verschachtelten Schleifen angeben zu können, welche Schleife durch einen EXIT - Befehl verlassen werden soll, setzt man vor der Schleife eine entsprechende Sprungmarke und gibt sie beim EXIT - Befehl an. Das führt im folgenden Beispiel zum Verlassen beider Schleifen.
WHILE - Schleife
In einer WHILE - Schleife wird eine Bedingung spezifiziert. Die Schleife wird dann so lange durchlaufen, bis diese Bedingung erfüllt ist. Die Bedingung wird vor jedem Schleifendurchlauf erneut überprüft.
FOR - Schleife
Die Zählvariable kann nur ganze Zahlen annehmen, wobei die Schrittweite immer eins beträgt. Rückwärts laufende Schleifen erfordern stattdessen die Angabe IN REVERSE statt IN. Innerhalb der Schleife kann die Zählvariable nicht das Ziel einer Zuweisung sein. ACHTUNG: Sie überdeckt eine bereits existierende Variable gleichen Namens in dem Block, in dem sich die Schleife befindet, d.h. der Wert der Zählvariablen ist nach dem END LOOP nicht verfügbar. Die Zählvariable wird nicht im DECLARE - Teil des PL/SQL - Blocks oder im Deklarationsteil einer Prozedur definiert. Die Deklaration erfolgt durch die Schleife selbst. Die Grenzen werden zur Laufzeit einmalig vor der Schleife berechnet, d.h. die Grenzen sind während der Schleifendurchläufe nicht veränderbar. Um eine FOR - Schleife vorzeitig zu verlassen, steht der EXIT - Befehl zur Verfügung. Stichwörter Ablaufsteuerung begin end if then else elsif endif while for loop Schleife Schleifen Goto Sprung Beispiel Beispiele |