Oracle PL/SQL Grundkurs

Die Erstellung eines anonymen PL/SQL-Programmbeispiels

Testen Sie unsere 1983 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Schauen Sie dem Trainer bei der Programmierung eines anonymen PL/SQL-Blocks über die Schulter. Hierdurch lernen Sie die Programmierung des anonymen PL/SQL-Blocks optimal kennen.

Transkript

In diesem Video werden wir mit dem durchgehenden PL/SQL-Programmierbeispiel dieses Trainings beginnen. In dem PL/SQL-Programm wird es sich um die Ermittlung des sogenannten Body-Mass-Index handeln. Kurz gefasst kann man sagen, dass der Body-Mass-Index das Verhältnis zwischen Körpergewicht und Körpergröße wiedergibt. Ich öffne jetzt mal wieder die Eingabeaufforderung und führe dann SQL Plus aus. (Stille) Und jetzt öffne ich eine neue Datei. Edit. "Kapitel 02". Nenn ich die mal bmi.sql. So. Dann öffnet sich Notepad++. (Stille) Und ich kann mit dem Programm beginnen. Ganz oben werde ich wieder einen mehrzeiligen Kommentar hinterlegen, mit einem /*. Und dort schreibe ich hinein: "Errechnung des BMI-Wertes". Die Formel zum Body-Mass-Index lautet: "BMI ist gleich Körpergewicht durch Körpergröße zum Quadrat". Die werde ich jetzt mal hier hinschreiben. (tippt) So. (Stille) Und dann schließe ich den mehrzeiligen Kommentar auch noch. Diese recht einfache Formel wurde im 19. Jahrhundert als grobe Grundlage für Statistiken benötigt. Deshalb sollten Sie die in diesem Programm gezeigten Resultate mit etwas Humor nehmen. Es geht lediglich darum, PL/SQL kennenzulernen, und weniger um die Ermittlung von Fettleibigkeit. Wir beginnen mit dem Deklarationsabschnitt, wo wir all das, was man in dem darauf folgenden Ausführungsabschnitt verwenden möchte, deklarieren werden. Den Deklarationsabschnitt leiten wir in unserem Beispiel mit dem Schlüsselwort DECLARE ein. Weil es sich in diesem Beispiel um einen anonymen Block handelt, ist DECLARE also das Richtige. Bei einem benannten PL/SQL-Programm wäre das ja anders. Im Deklarationsabschnitt werden wir jetzt eine Kommazahl für das Gewicht, eine Kommazahl für die Körpergröße und eine Kommazahl für das Ergebnis, also den BMI-Wert, deklarieren. Die Variable für die Körpergröße nenne ich mal groesse. Und hinter dem Variablennamen müssen wir den Datentypen der Variablen ankündigen. Für die Körpergröße werde ich den Datentypen NUMBER in der Präzision 3, 2 setzen. Das ergibt eine Vorkomma- und zwei Nachkommastellen. Die Deklaration muss ich dann hier mit einem Semikolon abschließen. Und dann hätte ich die erste Deklaration fertig. Nun könnte ich die Deklaration wie angezeigt, also so, belassen. In diesem Fall hätte die Variable groesse gar keinen Wert. In der EDV-Programmierung würde man sagen, dass die Variable groesse auf den Adressbereich "null" zeigt. Damit die Variable einen Wert enthält, muss ich hier also einen Wert zuweisen. Bei der erstmaligen Wertzuweisung spricht man von einer "Initialisierung". Ich kann die Initialisierung nun auch später im Ausführungsabschnitt aber auch jetzt bereits im Deklarationsabschnitt vornehmen. Die Wertzuweisung erfolgt über den Zuweisungsoperator, der bei PL/SQL durch einen Doppelpunkt und ein Gleichheitszeichen angezeigt wird. Also so. Hinter dem Zuweisungsoperator muss dann ein Wert folgen. Ich könnte jetzt beispielsweise den Wert 0 wie einen Default-Wert für die Variable festlegen und diesen dann später im Ausführungsabschnitt ändern. Es gibt noch eine weitere Möglichkeit, wie man einen Default-Wert setzen kann. Und zwar über das Schlüsselwort DEFAULT. Also könnte ich an dieser Stelle statt dem Zuweisungsoperator auch DEFAULT schreiben. Ich hatte Ihnen ja gesagt, dass Notepad++ in der Lage ist, ein Syntax-Highlighting anzubieten. Dies wird so angeschaltet: Und zwar gehen Sie hier über "Sprachen". Dann hinunter zu "S". Und dann auf "SQL". Dann sehen Sie, dass die Schlüsselwörter mit einer anderen Farbe angezeigt werden als die Variablen und so weiter. Kommen wir also zurück zu unserem Programm. Wir hatten vorhin mit dem Zuweisungsoperator den Wert 0 der Variablen groesse zugewiesen. Ich hatte Ihnen gesagt, dass man im Deklarationsabschnitt auch mit DEFAULT arbeiten kann. Beide Varianten sind hier gleichwertig. Um anzuweisen, dass der Wert der Variablen über eine Eingabe erfolgen soll, kann ich nun eine undefinierte Substitutionsvariable einsetzen. Denn jedes Mal, wenn SQL Plus auf eine Substitutionsvariable trifft, die noch nicht definiert ist, wird der Benutzer dazu aufgefordert, einen Wert für die Substitutionsvariable einzugeben. Ich nenne die Substitutionsvariable mal auch wieder groesse. Und zwar schreibe ich das dann so hin. (tippt) Das Besondere an der Substitutionsvariable ist ja, dass sie noch vor der Kompilierung durch die Benutzereingabe ersetzt wird. Allerdings ist es dieses Mal anders als mit dem Schlüsselwort DEFINE. Denn die Eingabe, die der Benutzer hier vornimmt, ist lediglich temporär. Würden wir im Laufe des SQL-Skripts also ein weiteres Mal die Substitutionsvariable mit dem kaufmännischen & nutzen, so würde uns SQL Plus erneut nach dessen Inhalt fragen. Es gibt eine Möglichkeit, eine Substitutionsvariable genauso zu definieren, wie es mit dem Schlüsselwort DEFINE geschieht. Und zwar müssten wir dann die Variable mit zwei kaufmännischen & versehen. Aber wir möchten an dieser Stelle ja keine permanente Substitutionsvariable erstellen, sondern lediglich temporär dafür sorgen, dass der Benutzer zur Eingabe eines Wertes aufgefordert wird. Also belassen wir es jetzt hier an der Stelle so. Kommen wir zur nächsten Variable. Für das Gewicht nehme ich den Datentyp NUMBER. Ich nenne mal die Variable fürs Gewicht auch gewicht. Und die NUMBER setze ich mit der Präzision 5, 2. Das ergibt dann drei Vorkommastellen und zwei Nachkommastellen. Der Benutzer wird das Gewicht in Kilogramm eingeben und die Körpergröße in Metern. Deswegen passt das so optimal. Und auch hier wieder arbeite ich mit Substitutionsvariablen. Und ich nenne die Substitutionsvariable auch wieder &gewicht. Und jetzt kommen wir zur dritten Variablen. Die nenne ich bmi. Weil wir den BMI-Wert berechnen werden, brauchen wir dort keine Substitutionsvariable. Also hier kann ich einfach nur schreiben: bmi NUMBER. Und die Präzision setze ich hier auf 5, 2. Und einfach nur Semikolon. Nun geht es mit dem Ausführungsabschnitt weiter. Den leite ich mit dem Schlüsselwort BEGIN ein. Und hier im Ausführungsabschnitt können wir jetzt den BMI-Wert ausrechnen. Die Formel, die war ja: "BMI ist gleich Gewicht durch Größe zum Quadrat". Also schreibe ich mal rein: "bmi := gewicht / groesse" Die Rechenart Potenz drückt man bei PL/SQL über zwei Sterne aus. Also **2. Und jetzt könnte ich zur Verdeutlichung, dass das zusammengehört, auch hier noch eine Klammer setzen. Und dann wären wir damit fertig. Zuletzt noch ein Semikolon. Und dann müssen wir das Ergebnis ausgeben. Also: dbms_output, dann den Punktoperator und das Programm put_line. Und hier brauche ich jetzt wieder ein Hochkomma. Das soll dann anzeigen, dass es sich bei dem Folgenden um den BMI-Wert handelt. Und jetzt muss ich diese Zeichenkette mit dem Wert bmi miteinander verbinden. Dafür brauche ich den Verbindungsoperator und der ist genauso wie bei SQL. Also zwei vertikale Striche und dann schreibe ich dahinter einfach nur bmi. Gut, das hätten wir geschafft. Und jetzt schließe ich das Programm ab, indem ich END; schreibe. Und dann brauche ich einen Schrägstrich, um PL/SQL darauf hinzuweisen, dass dieses Programm ausgeführt werden soll. Diese Datei werde ich nun abspeichern und den Text-Editor schließen. Innerhalb von SQL Plus werde ich das Programm jetzt mal starten. Und zwar über: start kap02_bmi.sql. (Stille) Jetzt werde ich dazu aufgefordert, eine Körpergröße anzugeben. Die gebe ich jetzt mal ein. Und auch, dass ich ein Körpergewicht angebe. Das mache ich jetzt auch mal. So, und das ist das Ergebnis: "BMI: 21,94". Aber wie Sie sehen, drückt SQL Plus nicht nur die Ausgaben hier aus sondern auch noch weitere Zeilen. Die Information, die Sie hier sehen, dient der Überprüfung des Programms. Offenbar versucht uns SQL Plus mit dieser Verifikation mitzuteilen, wie es die Substitutionsvariablen mit den angegebenen Werten ersetzt hat. Diese Verifikation ist aber in den meisten Fällen überflüssig. Um sie abzuschalten, setzen Sie die Set-Variable verify auf off. Also auf diese Weise: set verify off. (Stille) Nun starten Sie das Programm erneut. (Stille) Und wie Sie sehen, ist diese Verifikation nun abgeschaltet. Gut, das hat funktioniert. Ich werde die verify-Einstellung nun aber auch in die Datei login.sql übertragen. Ansonsten müsste ich die Änderung bei jedem Start von SQL Plus immer wieder erneut vornehmen. Das spare ich mir dann dadurch. Also: edit login.sql. Und hier schreibe ich ganz unten hinein: set verify off. (Stille) In diesem Video habe ich Ihnen vorgeführt, wie Sie ein anonymes PL/SQL-Programm erstellen. Dabei habe ich Ihnen auch die Möglichkeit gezeigt, wie Sie Substitutionsvariablen dazu verwenden können, den Benutzer zu der Eingabe von Werten aufzufordern.

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!