PrinzipDa PL/SQL die prozedurale Erweiterung von SQL darstellt, können in PL/SQL fast alle Möglichkeiten von SQL benutzt werden. Alle SQL- DML - Befehle (select, insert, update, delete) sind direkt in PL/SQL verfügbar. Dabei dienen PL/SQL - Variablen dem Datenaustausch zwischen SQL und PL/SQL. Weiterhin ist die Verwendung der Befehle zur Transaktionssteuerung (commit, rollback ...) möglich. DDL - Befehle müssen über dynamisches SQL durch Verwendung der Standard Package DBMS_SQL realisiert werden. Alle SELECT-Befehle müssen eine INTO-Klausel enthalten, die definiert, welche Variablen das Ergebnis aufnehmen sollen. Weitere Details sind auch in dem Buch Oracle PL/SQL Programmierung zu finden. Beispiel:
CursorDefinition Cursor sind Datenstrukturen im Arbeitsspeicher, die für die Abarbeitung von SQL - Befehlen benötigt werden. Für jeden SQL - Befehl wird automatisch ein entsprechender Speicherbereich allokiert (impliziter Cursor). Für SELECT - Befehle, die mehrere Zeilen liefern, muß ein expliziter Cursor verwendet werden. Beispiel:
Cursor - ParameterBeispiel:
Cursor - StrukturvariablenBeispiel:
Cursor - Attribute
Jeder Cursor hat vier Statusattribute, auf die mit cursor%ATTRIBUT zugegriffen wird. Bei impliziten Cursorn erfolgt der Zugriff mit SQL%ATTRIBUT. %OPEN steht bei impliziten Cursorn nicht zur Verfügung. Um den aktuellen Datensatz eines expliziten Cursors mit einem UPDATE-Befehl zu ändern, kann man die CURRENT OF - Klausel in der WHERE-Bedingung verwenden. Beispiel siehe unten. %FOUND
%NOTFOUND
%ROWCOUNT
%ISOPEN
CURRENT OF
Cursor - FOR - Schleifen
Durch eine Cursor - FOR - Schleife wird ein Cursor automatisch geöffnet, alle Sätze der Ergebnismenge des zugehörigen SELECT - Befehls gelesen und der Cursor wieder geschlossen. Die Befehle OPEN, FETCH und CLOSE sind dann nicht notwendig. Die Schleifenvariable hat den Recordtyp des Cursors. Beispiel 1:
Beispiel 2:
Stichwörter cursor open fetch close %FOUND %NOTFOUND %ROWCOUNT %ISOPEN CURRENT OF Beispiel Beispiele Befehl Befehle |