Zusammenfassung: In diesem Tutorial lernen Sie den anonymen PL/SQL-Block kennen und erfahren, wie Sie ihn mit den Werkzeugen von SQL*Plus und SQL Developer ausführen.
Überblick über den anonymen PL/SQL-Block
PL/SQL ist eine blockstrukturierte Sprache, deren Code in Blöcken organisiert ist. Ein PL/SQL-Block besteht aus drei Abschnitten: Deklarations-, Ausführbarkeits- und Ausnahmebehandlungsabschnitt. In einem Block ist der ausführbare Abschnitt obligatorisch, während der Deklarations- und der Ausnahmebehandlungsabschnitt optional sind.
Ein PL/SQL-Block hat einen Namen. Funktionen oder Prozeduren sind ein Beispiel für einen benannten Block. Ein benannter Block wird im Oracle Database Server gespeichert und kann später wiederverwendet werden.
Ein Block ohne Namen ist ein anonymer Block. Ein anonymer Block wird nicht im Oracle-Datenbankserver gespeichert, er ist also nur zur einmaligen Verwendung gedacht. Für Testzwecke können anonyme PL/SQL-Blöcke jedoch nützlich sein.
Das folgende Bild zeigt die Struktur eines PL/SQL-Blocks:
1) Deklarationsabschnitt
Ein PL/SQL-Block hat einen Deklarationsabschnitt, in dem Sie Variablen deklarieren, Speicher für Cursor zuweisen und Datentypen definieren.
2) Executable section
Ein PL/SQL-Block hat einen Executable section. Ein ausführbarer Abschnitt beginnt mit dem Schlüsselwort BEGIN
und endet mit dem Schlüsselwort END
. Der ausführbare Abschnitt muss mindestens eine ausführbare Anweisung enthalten, auch wenn es die Anweisung NULL
ist, die nichts tut.
3) Ausnahmebehandlungsabschnitt
Ein PL/SQL-Block hat einen Ausnahmebehandlungsabschnitt, der mit dem Schlüsselwort EXCEPTION
beginnt. Im Ausnahmebehandlungsabschnitt werden Ausnahmen, die durch den Code im Ausführungsabschnitt ausgelöst wurden, abgefangen und behandelt.
Beachten Sie, dass ein Block selbst eine ausführbare Anweisung ist, daher können Sie einen Block in anderen Blöcken verschachteln.
PL/SQL Beispiel für einen anonymen Block
Das folgende Beispiel zeigt einen einfachen PL/SQL anonymen Block mit einem ausführbaren Abschnitt.
Der ausführbare Abschnitt ruft die Prozedur DMBS_OUTPUT.PUT_LINE
auf, um die Meldung "Hello World"
auf dem Bildschirm anzuzeigen.
Ausführen eines anonymen PL/SQL-Blocks mit SQL*Plus
Sobald Sie den Code eines anonymen Blocks haben, können Sie ihn mit SQL*Plus ausführen, einer Befehlszeilenschnittstelle für die Ausführung von SQL-Anweisungen und PL/SQL-Blöcken, die von Oracle Database bereitgestellt wird.
Die folgende Abbildung zeigt, wie man einen PL/SQL-Block mit SQL*Plus ausführt:
Zunächst verbinden Sie sich mit einem Benutzernamen und einem Passwort mit dem Oracle Database Server.
Zweitens: Schalten Sie die Serverausgabe mit dem Befehl SET SERVEROUTPUT ON
ein, so dass die Prozedur DBMS_OUTPUT.PUT_LINE
Text auf dem Bildschirm anzeigt.
Drittens: Geben Sie den Code des Blocks und einen Schrägstrich ( /
) ein, um SQL*Plus anzuweisen, den Block auszuführen. Sobald Sie den Schrägstrich (/) eingeben, führt SQL*Plus den Block aus und zeigt die Meldung Hello World
auf dem Bildschirm an, wie in den Abbildungen gezeigt.
Beachten Sie, dass Sie den Befehl SET SERVEROUTPUT ON
in jeder Sitzung ausführen müssen, in der Sie eine Verbindung zur Oracle-Datenbank herstellen, um die Meldung mit dem Verfahren DBMS_OUTPUT.PUT_LINE
anzuzeigen.
Um den von Ihnen eingegebenen Block erneut auszuführen, verwenden Sie den Befehl /
, anstatt alles von Grund auf neu einzugeben:
Wenn Sie den Codeblock bearbeiten möchten, verwenden Sie den Befehl edit
. SQL*Plus schreibt den Codeblock in eine Datei und öffnet sie in einem Texteditor, wie in der folgenden Abbildung gezeigt:
Sie können den Inhalt der Datei wie folgt ändern:
Speichern und schließen Sie die Datei. Der Inhalt der Datei wird in den Puffer geschrieben und neu kompiliert.
Danach können Sie den Codeblock erneut ausführen, er wird den neuen Code verwenden:
Execute a PL/SQL anonymous block using SQL Developer
Zuerst verbinden Sie sich mit dem Oracle Database Server mit Oracle SQL Developer.
Zweitens: Erstellen Sie eine neue SQL-Datei mit dem Namen anonymous-block.sql
im Verzeichnis C:\plsql
, in der der PL/SQL-Code gespeichert wird.
Drittens geben Sie den PL/SQL-Code ein und führen ihn aus, indem Sie auf die Schaltfläche Ausführen klicken oder die Tastenkombination Strg-Eingabe drücken.
Weitere Beispiele für anonyme PL/SQL-Blöcke
In diesem Beispiel deklarieren wir zunächst eine Variable l_message
, die die Begrüßungsnachricht enthält. Im Ausführungsabschnitt verwenden wir dann die Prozedur DBMS_OUTPUT.PUTLINE
, um den Inhalt dieser Variablen anzuzeigen, anstatt eine wörtliche Zeichenkette zu verwenden.
Hier ist die Ausgabe:
Hello World!
Das nächste Beispiel für einen anonymen Block fügt einen Abschnitt für die Ausnahmebehandlung hinzu, der die im Ausführungsabschnitt ausgelöste ZERO_DIVIDE
Ausnahme abfängt und eine Fehlermeldung anzeigt.
Die Fehlermeldung lautet:
ORA-01476: divisor is equal to zero
Nun sollten Sie wissen, wie man anonyme PL/SQL-Blöcke erstellt und sie mit SQL*Plus und Oracle SQL Developer Tools ausführt.
- War dieses Tutorial hilfreich?
- JaNein