Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Oracle PL/SQL Grundkurs

Die Verzweigung mit dem CASE-Ausdruck

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In diesem Video behandelt der Trainer die Verzweigungen mit dem CASE-Ausdruck. Dabei erklärt er Ihnen, dass der CASE-Ausdruck bei PL/SQL auch einen Rückgabewert liefert und sich somit der Quelltext verkleinern lässt.

Transkript

In diesem Video werden wir die Verzweigung mit dem Schlüsselwort CASE behandeln. Weil eine Verzweigung mit dem CASE-Ausdruck bei der Oracle-DB auch in statischem SQL eingebaut werden kann, ist Sie Ihnen wohlmöglich schon bekannt. In diesem Video wird sie dennoch von Grund auf ausführlich erläutert, dem Zuschauer anderer Datenbanken gerecht zu werden. Und auch, weil es hierbei Einiges zu beachten gilt. Legen wir also los. Wir werden jetzt mal zunächst wieder die bisherige Datei öffnen. Das war ja zuletzt kap03_bmi_if.sql. Und dann speichern wir diese Datei unter einem anderen Namen ab. (Stille) Speichern unter. Und ich nenne sie mal bmi_case.sql. (Stille) Wir schauen uns jetzt zunächst mal die IF-Verzweigung in dem BMI-Programm hier an. Denn bei einer bestimmten Variante des CASE-Ausdrucks gleichen sich die IF-Verzweigungen und die Fallunterscheidungen mit dem CASE-Ausdruck. Im Grunde genommen ist eine Verzweigung ja nichts anderes als eine Fallunterscheidung. In diesem Beispiel liegt der erste Fall vor, wenn der errechnete BMI-Wert oberhalb der Obergrenze des BMI-Normbereiches liegt. Der zweite, wenn er unterhalb der Untergrenze liegt. Und im dritten Fall handelt es sich um alle anderen BMI-Werte, hier unten. Diese Fallunterscheidung können wir auch mit dem CASE-Ausdruck programmieren. Zunächst schreiben wir hierfür das Schlüsselwort CASE hier ganz oben vor die Verzweigung. (Stille) Und am Ende der Verzweigung müssen wir die Schlüsselwörter END IF mit END CASE ersetzen. (Stille) Dann müssen wir die restlichen Vorkommnisse von IF durch ein WHEN ersetzen. Und zwar hier. (Stille) Und auch das ELSIF. (Stille) So, und schon sind wir fertig. Das können wir jetzt mal ausprobieren. Ich schließe mal die Datei und starte sie. (Stille) So, jetzt muss ich eine Körpergröße eingeben. Und auch ein Gewicht. (Stille) Und dann sehen Sie, dass das genauso funktioniert. Ich werde jetzt erneut die Datei öffnen, weil ich Ihnen noch etwas zeigen möchte. (Stille) Und zwar schauen wir uns hierzu hier noch mal den CASE-Ausdruck an. Wir hatten ja festgestellt, dass sich die IF-Verzweigung von der CASE-Variante kaum unterscheidet. Lediglich die Schlüsselwörter sind unterschiedlich. Allerdings hat der CASE-Ausdruck bei Oracle eine Besonderheit, die der IF-Ausdruck nicht bietet. Denn ein CASE-Ausdruck dient nicht nur der Verzweigung, sondern kann auch zusätzlich einen Wert zurückgeben. Und genauso, wie ich den Wert, den mir der CASE-Ausdruck liefert, einer Variablen dann zuweisen könnte, so kann ich den gesamten CASE-Ausdruck auch als Parameter innerhalb der runden Klammern von put_line setzen. Das schauen wir uns jetzt mal an. (Stille) Hierfür werde ich diese Zeile einmal kopieren, mit dem put.line. Den bisherigen Inhalt, den entferne ich mal. So, und dann rücke ich den ganzen CASE-Ausdruck eins nach vorne, damit das auch deutlich wird, dass das jetzt Teil der Klammer wird, oder des Inhalts der Klammer. Dann entferne ich CASE und Semikolon, schließe die Klammer von put_line. Und dieser Aufruf von put_line jeweils, der kann jetzt entfallen, denn wir rufen die Funktion hier oben einmal auf. Und wir brauchen immer nur die Zeichenketten. Das heißt all das kann ich jetzt entfernen. (Stille) Und auch hier. (Stille) Und hier auch. (Stille) So, ich rücke die drei Zeilen noch einen Tab nach vorne, damit das deutlicher wird, dass hier ein CASE-Ausdruck ist, den wir in die Klammern der Funktion put_line reingesetzt haben. (Stille) Ich kann dieses Programm jetzt auch noch mal ausprobieren, damit Sie sehen, dass das auch funktioniert. (Stille) So, ich gebe jetzt hier wieder eine Körpergröße ein. Und ein Gewicht. (Stille) Und siehe da, das funktioniert genauso. Ich öffne jetzt wieder erneut die Datei kap03_bmi_case und werde Ihnen nun eine weitere Besonderheit zeigen. Und zwar geht es hierbei darum, dass man bei dem CASE-Ausdruck zwischen dem "searched" und dem "simple" CASE-Ausdruck unterscheidet. Bei der hier gezeigten Variante handelt es sich um den Searched Case Ausdruck, bei dem jede logische Entscheidung hinter dem WHEN ganz individuell ermittelt werden kann. Der Simple Case Ausdruck hingegen wird dann eingesetzt, wenn die logische Entscheidung stets von derselben Variablen abhängt. Dies werde ich in unserem BMI-Programm mal verdeutlichen. Ich werde nun auch noch ein "Simple Case Statement" hinzufügen, um die beiden Varianten in dem gleichen Beispiel gegenüberzustellen. Den Searched Case Ausdruck werde ich jetzt dazu nutzen, der Variablen bmi eine verallgemeinernde Ganzzahl zuzuweisen. (Stille) Deshalb werde ich dieses Ganze hier einmal kopieren. Mit der rechten Maustaste und dann über das Syntax-Menü kopieren. Und den Inhalt des Zwischenspeichers füge ich jetzt hier hinein. (Stille) So. Zur Verdeutlichung werde ich auch noch einen Kommentar hier reinsetzen. (Stille) Das ist ein Searched Case Statement. (Stille) Und jetzt verwende ich einfach die vorhandene Variable bmi, die brauchen wir ja auch nicht mehr. Und hier werde ich immer eine Zahl zurückgeben. 30 soll die Zahl sein bei Übergewicht. 10 für Untergewicht. Und bei einem Normalgewicht soll dann eine 20 geliefert werden. Dieser Wert wird dann zurückgegeben und an die Variable bmi zugewiesen. (Stille) Hier folgt dann ein Semikolon. Und bei diesem Ausdruck hier handelt es sich dann gleich um ein Simple Case Statement. (Stille) Und zwar ist es so, dass man bei dem Simple Case Statement eben eine Variable benutzt. Hier können wir die Variable bmi verwenden. (Stille) Und dann immer abfragen, ob sie den Wert 30 hat. (Stille) 10. (Stille) Oder eben 20. Aber das mit dem ELSE, das lasse ich so stehen, das genügt vollkommen. (Stille) Wichtig ist nur, dass Sie den Unterschied zwischen einem Searched Case Statement und dem Simple Case Statement deutlich erkennen. Und zwar ist es so, dass hier keine Variable hinter dem CASE steht und stattdessen eben solche logischen Ausdrücke stehen. Und bei dem Simple Case Statement, da haben wir eine Variable und die können wir dann eben abfragen, ob sie diesen oder jenen Wert hat. So, dieses Beispiel probieren wir jetzt mal aus. Ich speichere die Datei ab, schließe sie und dann werde ich das Ganze auch noch mal starten. Über kap03_bmi_case. Muss dann eine Körpergröße eingeben. Ein Körpergewicht. (Stille) Und dann sehen Sie, dass das hier genauso funktioniert. Hier erscheint dann eben der Text "Normalgewicht". In diesem Video habe ich Ihnen gezeigt, wie Sie für Fallunterscheidungen den CASE-Ausdruck nutzen können. Dabei habe ich Ihnen erklärt, dass der CASE-Ausdruck auch einen Rückgabewert liefern kann und sich auf diese Weise der Quelltext verkleinern lässt. Anschließend sind wir auch auf die Unterscheidung zwischen dem Searched Case Ausdruck und dem Simple Case Ausdruck eingegangen. Während der Searched Case Ausdruck jede logische Entscheidung ganz individuell ermittelt, wird der Simple Case Ausdruck dann eingesetzt, wenn die logische Entscheidung stets von derselben Variable abhängt.

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!