Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Oracle PL/SQL Grundkurs

Record

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wenn es um Datentypen geht, bietet PL/SQLeine mannigfache Vielfalt an und es bleibt kaum ein Wunsch offen. Eine dieser Möglichkeiten ist ein sogenannter RECORD.

Transkript

PL/SQL bietet eine Vielfalt an vordefinierten komplexen Datentypen an. Außerdem ist es sogar möglich, dass man eigene Datentypen erzeugt. Dies erinnert ein wenig an die Erstellung von Klassen bei einer objektorientierte Programmiersprache. Die Möglichkeiten, die PL/SQL hierfür anbietet, ist enorm und alle zu behandeln, würde den Rahmen des Trainings sprengen. Aber auf einen vordefinierten komplexen Datentypen, werden wir in diesen Video eingehen, da er im PL/SQL-Progamme eine wichtige Rolle spielt. Die Rede ist von sogenannten RECORD. Ein RECORD ist ein Datentyp, der sich selbst auch aus mehreren Datenfeldern zusammensetzt. Ich werde Ihnen zeigen, wie man einen RECORD erstellt. Hierfür öffne ich mal wieder die Datei, die wir zuletzt hatten. kap05_messungen_ausgeben, war das. Jetzt können wir hier unter dem CURSOR, ein RECORD deklarieren. Das geht über das Schlüsselwort TYPE. Dann muss ich den RECORD einen Namen geben. rec_benutzer, nenne ich den mal. Dann muss ich hinzufügen IS RECORD. Jetzt kann ich, im rundem Klammern angeben, welche Datenfelder, dieser RECORD haben soll. Ich setze jetz die gleichen Datenfelder, wie sie in der Tabelle benutzer definiert sind. Und es war id NUMBER dann name VARCHAR2 und 40 Zeichen. Und dann hatten wir auch noch groesse und das war ein NUMBER 3,2 Hierbei würde sich um ein Datentyp, ein RECORD handeln, der drei Felder enthält. Um Beispielsweise nun einen Benutzer mit dem Namen b zu erzeugen, können wir anschließend folgendes deklarieren. Hier unten kann ich jetzt zum Beipsiel sagen, b und der Datentyp ist ein rec_benutzer. Im Ausführungsabschnitt können wir dem Benutzer, Werte zu dem einzelnen Feldern zuweisen. Also, beispielsweise können wir hier sagen, b.id das soll der Primärschlüssel 123 sein. b.name das ist Alex. Und b.groesse ist 1,78. Und danach konnten wir, die einzelne Werte alle ausgeben. dbms_output.putline und dann konnte ich jetzt hier die einzelne Werte ausgeben. b.id Konkatenations-Aparatur So. Sonst funktioniert es nicht. Ich kann hier noch den Namen und auch noch die Größe ausgeben. Wenn man sich dieses RECORD-Beispiel nun anschaut, liegt es nah, dass es sich beim RECORD im Grunde genommen, um es etwas Ähnliches, wie ein Datensatzs einer Datenbanktabelle handelt. Und so ähnlich ist es er ja auch. Wir können dieses kleine Beispiel noch vereinfachen, indem wir die Datentypen mit Hilfe des prozentual Attributs auf die Datentypen der Spaltenfelder der Tabelle benutzer mappen. Also, so benutzer.id%TYPE Und das können wir dann hier hineinkopieren das ist ein Spaltenfeld name Und so hatten Sie das ja, bereits schonmal gesehen. Das heißt, hierdurch wird dann unser RECORD von nun an stets, die gleichen Datentypen, wie die Spaltenfelder der Datenbanktabelle benutzer enthalten. Noch einfacher geht es jetzt aber mit dem Attribut %ROWTYPE. Den können wir nämlich direkt, an den Tabellennamen anhängen. Hierdurch entfallen einige Zeilen an Feldtext. Ich kann jetzt auf das alles hier verzichten und einfach nur die Tabelle benutzer referenzieren und dann hinzufügen %ROWTYPE. Und in Kombination mit ein CURSOR geht es sogar noch eleganter. Ich kann jetzt nämlich an dieser Stelle sagen, das soll der ROWTYPE von diesem CURSOR sein. Also, c_bmi. Und jetzt werde ich auch, die Variable b mal umbenennen in record_bmi rec_bmi. Das entferne ich jetzt mal alles. Dann sehen Sie gleich, wie praktisch das bei dem CURSOR ist. Denn in FETCH kann ich jetzt das Ergebnis des CURSORS nun der Variablen rec_bmi zuweisen. Also, an dieser Stelle, kann ich jetzt einfach sagen INTO rec_bmi. Hier unten, bei der Referenzierung der einzelnen Variablen, müssen wir jetzt noch einiges anpassen. Denn das ist jetzt ein rec_bmi.gewicht. Und hier ist ein rec_bmi.groesse. Und hier auch ein rec_bmi.zeitpunkt. Diese drei Zeilen mit der Deklaration von Größe, Gewicht und Zeitpunkt, kann ich jetzt entfernen. Hier unten fehlt auch noch ein rec_bmi. Das ganze speicher ich jetzt mal ab und teste es über start führe ich das SQL-Skipt aus. Und jetzt kann ich das Programm ausprobieren exec. Das ist die Abkürzung, die geht auch. Sie können auch execute schreiben. messungen_ausgeben von Alex. Und wie Sie sehen, funktioniert das. In diesem Video habe ich Ihnen gezeigt, wie Sie den Datentypen RECORD einsetzen können, um ganz generisch die Datentypen eine Datenbanktabelle in die Felder des PL/SQL-Programms zu transferieren. Besonders praktisch ist der RECORD in Kombination mit einem CURSOR da man an dieser Stelle weitere Finessen eingebaut hat, um die Programmierung eines PL/SQL-Programms, eleganter gestalten zu können.

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!