Oracle PL/SQL Grundkurs

Die Basisvariante einer LOOP-Schleife

Testen Sie unsere 1983 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Schleifen sind in der EDV sehr nützlich. In diesem Video erklärt Ihnen der Trainer die Grundfunktionalität einer LOOP-Schleife.

Transkript

In diesem Video werden wir uns anschauen, wie man mit PL/SQL-Schleifen programmiert. Schleifen sind in EDV-Programmen grundsätzlich sehr nützlich. Aber gerade bei Datenbankanwendungen kann man Schleifen besonders gut gebrauchen, da sich hiermit durch die Zeilen einer Datenbanktabelle iterieren lässt. Deshalb spielen Schleifen gerade in einem PL/SQL-Programm eine besondere Rolle. Ich werde jetzt wieder die Datei des durchgehenden Beispielprogramms öffnen, und hiervor war ja die letzte Version kap03_bmi_case So, und diese Datei werde ich jetzt abspeichern unter einem anderen Namen, nämlich dem im Loop So - und jetzt können wir loslegen! Ich werde Ihnen die Nutzung der Schleife anhand eines kleinen Programmierbeispiels zeigen, bei dem es sich grundsätzlich wieder um den BMI-Index handelt. Und zwar werden wir den Benutzer dazu auffordern, ein minimales und ein maximales Gewicht einzugeben. Für das Programm benötigen wir deshalb zwei weitere Variablen. Benenne Sie Gewicht_min und Gewicht_max Ich werde die beiden Variablen jetzt mal hier drunter setzen, und zwar: Gewicht_min soll wieder vom Datentyp NUMBER (5,2)} sein, das sind dann drei Vorkommastellen und zwei Nachkommastellen, und der Benutzer soll hier eine Eingabe tätigen: Gewicht_min Das brauchen wir hier nicht mehr. So, dann brauchen wir noch ein Gewicht_max Wir werden also eine Schleife programmieren, die für das Gewicht hier durch die Gewicht_min bis zum Gewicht_max durchiterieren wird, und dann immer jeweils ausgeben wird, ob das Gewicht im Über-, Unter- oder Normalgewicht-Bereich liegt. Der Schleifendurchlauf soll ja mit dem minimalen Gewicht beginnen, deswegen - werde ich hier - mit der Variablen Gewicht, das minimale Gewicht zuweisen, und danach kann es direkt schon mit dem Schleifendurchlauf losgehen. Für Schleifen wird in PL/SQL das Schlüsselwort LOOP eingesetzt, also schreibe ich an dieser Stelle LOOP hin, und jetzt muss ich alles, was in dem LOOP drin enthalten sein soll nach vorne rücken, So. Und ganz am Ende schließe ich die Schleife mit END LOOP ... und Semikolon. Grundsätzlich unterscheidet man bei PL/SQL drei unterschiedliche LOOP-Schleifen, es gibt die Basis-Variante, die sozusagen endlos ist, wie diese hier, in der kein zusätzliches Schlüsselwort eingesetzt wird, und dann gibt es noch zwei weitere, die mit dem Schlüsselwort FOR und dem Schlüsselwort WHY jeweils immer genau anzeigen, von wo bis wo die Schleife dann durchlaufen soll. Bei dieser sogenannten Endlos-Variante setzen wir das Schlüsselwort EXIT ein, um die Schleife dann doch nicht endlos durchlaufen zu lassen. In der Regel wird man das Ende der Schleifendurchläufe von einer logischen Abfrage abhängig machen, beispielsweise könnte man mit einer IF-Abfrage überprüfen, ob der Wert einer Variablen einen bestimmten Maximalwert überschritten hat oder nicht. Und das können wir hier auch einmal einprogrammieren. Wir können also hier sagen: IF, dann gewicht größer gewicht_max IF, dann gewicht größer gewicht_max THEN EXIT und END IF Anstatt des Schlüsselworts EXIT lässt sich an der gleichen Stelle auch mit dem Schlüsselwort CONTINUE arbeiten, Hierdurch springt das Programm dann zum nächsten Schleifendurchlauf. Die Anweisungen, die sich unterhalb des CONTINUE-Statements befänden, würden also dann übersprungen werden. Um sich einige Schlüsselwörter zu sparen, bietet bietet PL/SQL auch noch eine etwas kürzere Variante an. Denn das Schlüsselwort EXIT lässt sich mit dem Schlüsselwort WHEN kombinieren. Der folgende Ausdruck ist also deshalb gleichbedeutend, und zwar können wir hier sagen: EXIT WHEN diese Bedingung hier gültig ist, oder TRUE ergibt, und dann können wir hierauf verzichten. Als nächstes füge ich für die Iteration der Variablen Gewicht auch noch immer ein Zehntel Kilo hinzu, also ich schreibe dann dort: GEWICHT ist gleich Gewicht plus 0,1 Die Auswertung, ob es sich um ein Über-, Unter- oder Normalgewicht handelt, könnte ich jetzt auch so stehen lassen, das Programm ist also gültig, ich werde es dennoch ein bisschen verkleinern, damit es überschaubar wird und zwar werde ich ein SEARCH CASE Statement nutzen das lasse ich also so stehen, und werde hier aber jeweils nur die Zeichenkette ausgeben. Übergewicht, Untergewicht oder Normalgewicht, und das kann ich jetzt alles entfernen, Ich werde auch noch einen Doppelpunkt hinter den BMI-Wert immer reinschreiben, sonst würde dann immer dieser Text direkt hinter der Zahl stehen, das wäre dann unschön, So, das war's schon, ich speichere die Datei ab, und probiere sie mal aus. Ich starte das Programm, START Kap03_ BMI_ LOOP hieß es ja - So, jetzt muss ich eine Körpergrösse eingeben, dann ein Anfangsgewicht, ich nehme mal 60, ein Endgewicht, 90, und dann sehen Sie hier auch die Auswertung. In diesem Video habe ich Ihnen die Basis- Variante einer Loop-Schleife gezeigt. Diese Variante wird auch als "infinite Loop-Schleife" benannt, da sie endlos weiterläuft, wenn Sie nicht über das Schlüsselwort EXIT beendet wird.

Oracle PL/SQL Grundkurs

Entdecken Sie grundlegende Programmstrukuren, Stored Procedures und Functions in PL/SQL und sehen Sie, wie Sie auf Daten zugreifen können.

3 Std. 58 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!