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.


