Oracle PL/SQL Grundkurs

Eingangs- und Ausgangsparameter

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Lassen Sie sich in diesem Video vom Trainer zeigen, wie man Übergabeparameter als Eingangsparameter oder als Ausgangsparameter kenntlich macht.

Transkript

In diesem Video werde ich Ihnen zeigen, wie man bei einer Stalk Procedure Übergabeparameter als Eingangsparameter oder als Ausgangsparameter kenntlich macht. Hierfür werden wir unsere bisherige Stalk Procedure zweiteilen. Wir werden also mit zwei Procedures arbeiten, wobei die erste Procedure die zweite aufrufen wird. Die erste Procedure soll nach wie vor den BMI berechnen. Die zweite Procedure hingegen wird den BMI auswerten, und das Ergebnis der Auswertung als Ausgangsparameter anbieten. Zunächst öffne ich jetzt wieder das Programm kap04_bmi_berechnen kap04_bmi_berechnen Dann speichere ich dieses Programm auch noch unter einem anderen Namen ab, und zwar unter bmi_auswerten, und öffne jetzt wieder das erste bmi_berechnen, um es nebeneinander anzuzeigen, in einer zweiten Ansicht, hierfür müssen Sie hier auf das Tab klicken, mit der linken Maustaste, und dann die Maus hier hinüber ziehen, da können Sie hier die zweite Ansicht öffnen. So, jetzt haben wir eine bessere Übersicht, und können loslegen. Hier auf der linken Seite, hatten wir zwei klassische Eingangsparameter definiert. Eingangsparameter werden normalerweise mit dem Schlüsselwort IN und Ausgangsparameter mit dem Schlüsselwort OUT gekennzeichnet. Es gibt dann auch noch die Möglichkeit, eine Variable sowohl als Eingangs- als auch als Ausgangsvariable zu kennzeichnen, indem beide Schlüsselwörter hintereinander gesetzt werden. Es handelt sich hierbei um eine Kombination beider Varianten. Aber kommen wir zurück zu unserem Beispiel. Über das Schlüsselwort IN sagen wir also aus, dass es sich bei unserem Übergabeparameter lediglich um einen Eingangswert handelt. Deshalb schreibe ich das Schlüsselwort IN jetzt hinzu, und zwar zwischen den Variablennamen und den Datentypen. Genauso mache ich das hier bei der Variablen gewicht So. Bislang hatten wir ja auf diese Kennzeichnung verzichtet. Wenn, wie in unserem letzten Beispiel, weder IN's noch OUT's gesetzt worden sind, geht PL/SQL automatisch davon aus, dass es sich um Eingangsparameter handelt. Das Schlüsselwort IN ist an dieser Stelle also für reine Eingangsparameter optional. Man sollte sich dennoch daran gewöhnen, stets die Eingangsparameter explizit mit IN zu kennzeichnen, denn dadurch wird der Code besser und verständlicher. Und noch etwas: Zusätzlich sollte man auch noch bei den Variablennamen der Eingabe- und Ausgabeparameter über ein zusätzliches Unterstrich IN oder Unterstrich OUT verdeutlichen, um was es sich genau handelt. Denn auch dies gehört zum guten Ton der PL/SQL Programmierung. Ich werde die Eingabeparameter daher nun auch in unserem Programm in unserem Programm zu groesse_in und groesse_in und gewicht_in umbenennen. Diese Variablennamen muss ich jetzt auch im Ausführungsabschnitt hier unten übernehmen, groesse Unterstrich in und auch gewicht Unterstrich in Ich werde jetzt dafür sorgen, dass meine erste Procedure die zweite Procedure aufruft. Und zwar werde ich zunächst einmal alle Zeilen entfernen, die mit der Auswertung des errechneten BMI-Wertes hier auf der linken Seite zu tun haben. Also, diese vier Zeilen zum Beispiel, die können weg, und auch die Konstanten kann ich an dieser Stelle entfernen. Auf der rechten Seite mache ich es umgekehrt: Hier oben schreibe ich hinein: Auswerten des BMI-Wertes, Benenne die Procedure bmi_auswerten, und hier ist es so, dass wir als Eingangsparameter eine Variable entgegennehmen werden, die sich bmi Unterstrich in nennt, das ist also unser Eingangsparameter, und dann brauchen wir noch einen Ausgangsparameter, und den nenne ich einfach mal auswertung, und Auswertung soll keine NUMBER sein, sondern ein VARCHAR2. Also schreibe ich hier VARCHAR2 hin. Jetzt ist es so, dass wir auch hier kennzeichnen müssen, ob es sich um Eingangs- oder Ausgangsparameter handelt, also muss ich hier oben auch ein in hineinschreiben. auswertung muss natürlich auch ein Unterstrich out hin, und hier muss das Schlüsselwort OUT hinein. Auf die Deklaration der Variablen bmi kann ich an dieser Stelle verzichten, und auch die Berechnung, die wird ja von dem Programm bmi_berechnen übernommen, und jetzt muss ich der Variablen auswertung_out die Auswertung zuweisen, das mache ich wie folgt: und zwar schreibe ich hier mal einfach hinein: auswertung Unterstrich out, und dann Doppelpunkt gleich und das Ergebnis soll einfach sein: CASE WHEN bmi BMI_MAX THEN "Uebergewicht", ansonsten Untergewicht oder Normalgewicht, das kann ich so stehen lassen, hier muss die Klammer noch weg, die schließende, und ansonsten sind wir damit fertig. auswertung_out wird automatisch dann diesen Wert hier erhalten, Und somit können wir diese Variable dann hier in bmi_berechnen weiterverwenden. In der Procedure bmi_berechnen braucht man jetzt eine weitere Variable, die nenne ich mal auswertung, und die ist vom Typ VARCHAR2. 40 Zeichen sollen ausreichen, und jetzt übergeben wir der Procedure bmi_auswerten beides, sowohl den berechneten BMI-Wert, als auch die Variable auswertung, die dort noch keinen Wert enthält. Also, rufen wir zunächst einmal die Procedure auf, bmi_auswerten und als Übergabeparameter setzen wir bmi und dann auch auswertung. Und jetzt können wir hier bei der Ausgabe auswertung ausgeben, So, nun sind wir fertig, und speichern das Ganze ab, schließen Notepad++, und führen zunächst einmal das Skript kap04_bmi Unterstrich auswertung aus. Jetzt haben wir hier anscheinend Kompilierungsfehler, ich kann mir anzeigen lassen, welche das sind, indem ich show errors schreibe, und dann sehen Sie, dass ich hier identifier "BMI" must be declared also ich habe hier eine Fehlermeldung, und kann jetzt wieder reingehen zu edit kap04_bmi_auswerten, und kann mir anschauen, warum mir diese Fehlermeldung angezeigt wird, offenbar ist in der Zeile 10 eine Variable, die sich bmi nennt, und die nicht deklariert ist. Ich gehe also hier so rein, und schau mir das mal an, und sehe, dass ich hier den Fehler begangen habe, dass ich das bmi_in nicht übernommen habe, Also, die Umbenennung, die muss ich hier natürlich auch übernehmen, und das war's schon! Dann speichere ich wieder alles ab, und probiere das Beispiel erneut aus, so, und das hat jetzt funktioniert. Und jetzt als zweiten Schritt, noch den Start von kap04 Unterstrich bmi, und dann berechnen. Es ist wichtig gewesen, dass wir diese Reihenfolge eingehalten haben, denn bmi_auswerten muss erstmal vorhanden sein, damit bmi_berechnen auch valide sein kann. So, das war sauber, und jetzt kann ich hingehen, und bmi_berechnen ausführen, und zwar wieder über execute dann bmi Unterstrich berechnen, Jetzt brauche ich zwei Eingabeparameter, nämlich eine Körpergrösse und ein Gewicht. So. Und das führe ich mal aus, und dann sehen Sie, dass das hier funktioniert. In diesem Video haben Sie gelernt, wie man bei einer Stalk Procedure Übergabeparameter als Eingangsparameter, oder als Ausgangsparameter kenntlich machen kann.

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!