PL/SQL-Block: Struktur, Syntax & anonymes Beispiel
⚡ Intelligente Zusammenfassung
Ein PL/SQL-Block ist die Grundeinheit, die PL/SQL- und SQL-Anweisungen gruppiert, sodass sie gemeinsam und nicht Zeile für Zeile ausgeführt werden. Jeder Block enthält einen Deklarations-, einen Ausführungs- und einen Ausnahmebehandlungsabschnitt und kann anonym oder benannt sein.

Was ist ein PL/SQL-Block?
In PL/SQL wird Code nicht einzeilig ausgeführt, sondern immer in Gruppen.ping Der Code wird in ein einzelnes Element, einen sogenannten Block, unterteilt. In diesem Tutorial lernen Sie diese Blöcke kennen.
Blöcke enthalten sowohl PL/SQL- als auch SQL-Anweisungen. Alle diese Anweisungen werden als Ganzes und nicht einzeln ausgeführt.
Blockstruktur
PL/SQL-Blöcke besitzen eine vordefinierte Struktur, in der der Code gruppiert ist. Im Folgenden sind die verschiedenen Abschnitte eines PL/SQL-Blocks aufgeführt:
- Deklarationsabschnitt
- Ausführungsabschnitt
- Abschnitt zur Ausnahmebehandlung
Das Bild unten veranschaulicht die verschiedenen PL/SQL-Blockabschnitte und deren Reihenfolge.
Deklarationsabschnitt
Dies ist der erste Abschnitt eines PL/SQL-Blocks und optional. In diesem Abschnitt werden Variablen, Cursor, Ausnahmen, Unterprogramme, Pragma-Anweisungen und Sammlungen deklariert, die im Block benötigt werden. Weitere Merkmale dieses Abschnitts:
- Dieser Abschnitt ist optional und kann übersprungen werden, wenn keine Deklarationen erforderlich sind.
- Es sollte der erste Abschnitt in einem PL/SQL-Block sein, sofern vorhanden.
- Es beginnt mit dem Schlüsselwort „DECLARE“ für Trigger und anonyme Blöcke. Für andere Unterprogramme ist dieses Schlüsselwort nicht vorhanden; stattdessen kennzeichnet der Teil nach dem Unterprogrammnamen den Deklarationsabschnitt.
- Im Anschluss daran sollte stets der Ausführungsteil folgen.
Ausführungsabschnitt
Der Ausführungsteil ist der wichtigste und obligatorische Teil, der den darin geschriebenen Code tatsächlich ausführt. PL / SQL Dieser Block erwartet ausführbare Anweisungen, darf nicht leer sein und muss mindestens eine gültige ausführbare Zeile enthalten. Weitere Merkmale dieses Abschnitts:
- Es kann sowohl PL/SQL-Code als auch SQL-Code enthalten.
- Es kann einen oder mehrere Blöcke als verschachtelte Blöcke enthalten.
- Es beginnt mit dem Schlüsselwort 'BEGIN'.
- Darauf sollte entweder 'END' oder, falls vorhanden, der Abschnitt zur Ausnahmebehandlung folgen.
Abschnitt zur Ausnahmebehandlung
Ausnahmen sind unvermeidbare Fehler, die zur Laufzeit auftreten, und es gilt, sie zu behandeln. Oracle Bietet einen Abschnitt zur Ausnahmebehandlung in Blöcken. Dieser Abschnitt kann auch PL/SQL-Anweisungen enthalten und ist optional.
- In diesem Abschnitt wird eine im Ausführungsblock ausgelöste Ausnahme behandelt.
- Es handelt sich um den letzten Teil des PL/SQL-Blocks.
- Die Kontrolle von diesem Abschnitt aus kann niemals zum Ausführungsblock zurückkehren.
- Es beginnt mit dem Schlüsselwort „AUSNAHME“.
- Es sollte stets vom Schlüsselwort „END“ gefolgt werden.
Das Schlüsselwort 'END' markiert das Ende des PL/SQL-Blocks.
PL/SQL-Blocksyntax
Nachfolgend finden Sie die Syntax der PL/SQL-Blockstruktur.
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
Hinweis: Nach jedem Block sollte ein '/' folgen, der dem Compiler Informationen über das Ende des Blocks übermittelt.
Arten von PL/SQL-Blöcken
PL/SQL-Blöcke lassen sich im Wesentlichen in zwei Typen unterteilen:
- Anonyme Blöcke
- Benannte Blöcke
Die beiden werden im Folgenden kurz verglichen, bevor sie einzeln beschrieben werden.
| Aspekt | Anonymer Block | Benannter Block |
|---|---|---|
| Hat einen Namen | Nein | Ja |
| In der Datenbank gespeichert | Nein | Ja, als Objekt |
| Beginnt mit | DEKLAREN oder BEGINNEN | CREATE |
| Mehrweg | Nur die gleiche Sitzung | Jederzeit abrufbar |
Anonyme Blockaden
Anonyme Blöcke sind PL/SQL-Blöcke ohne zugewiesenen Namen. Sie müssen in derselben Sitzung erstellt und verwendet werden, da sie nicht als Datenbankobjekte auf dem Server gespeichert werden.
Da sie nicht in der Datenbank gespeichert werden, benötigen sie keinen separaten Kompilierungsschritt. Sie werden direkt geschrieben und ausgeführt, wobei Kompilierung und Ausführung in einem einzigen Prozess erfolgen. Weitere Merkmale:
- Diese Blöcke haben keinen Referenznamen.
- Sie beginnen mit dem Schlüsselwort „DECLARE“ oder „BEGIN“.
- Da sie keinen Referenznamen haben, können sie nicht zur späteren Verwendung gespeichert werden und müssen in derselben Sitzung erstellt und ausgeführt werden.
- Sie können andere benannte Blöcke aufrufen, aber ein Aufruf eines anonymen Blocks ist nicht möglich, da dieser keine Referenz hat.
- Sie können einen verschachtelten Block enthalten, der benannt oder anonym ist, und sie können auch in jedem beliebigen Block verschachtelt sein.
- Sie können alle drei Abschnitte enthalten, wobei der Ausführungsabschnitt obligatorisch und die beiden anderen optional sind.
Benannte Blöcke
Benannte Blöcke besitzen einen spezifischen und eindeutigen Namen. Sie werden als Datenbankobjekte auf dem Server gespeichert und können daher referenziert und verwendet werden, solange sie vorhanden sind. Die Kompilierung benannter Blöcke erfolgt separat bei ihrer Erstellung als Datenbankobjekte. Weitere Merkmale:
- Diese Bausteine können von anderen Bausteinen aus aufgerufen werden.
- Die Blockstruktur entspricht der eines anonymen Blocks, mit der Ausnahme, dass sie niemals mit 'DECLARE' beginnt. Stattdessen beginnt sie mit 'CREATE', wodurch der Compiler angewiesen wird, sie als Datenbankobjekt zu erstellen.
- Diese Blöcke können in andere Blöcke verschachtelt werden und auch verschachtelte Blöcke enthalten.
- Es gibt grundsätzlich zwei Arten von benannten Blöcken:
- Ablauf
- Funktion
Mehr über diese benannten Blöcke erfahren Sie im Leitfaden zu Verfahren und Funktionen.


