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.

  • 🧱 Kernidee: Code wird in einem Block zusammengefasst, der als Ganzes ausgeführt wird und prozedurale Logik mit SQL vermischt.
  • 📝 Erklärungsabschnitt: Optional; deklariert Variablen, Cursor, Ausnahmen und Unterprogramme, die im Block verwendet werden.
  • ▶ ️ Ausführungsabschnitt: Erforderlich; beginnt mit BEGIN und enthält mindestens eine ausführbare Anweisung.
  • 🛡️ Ausnahmeabschnitt: Optional; beginnt mit EXCEPTION und behandelt Laufzeitfehler.
  • 🏷️ Zwei Arten: Anonyme Blöcke sind unbenannt und werden einmal ausgeführt; benannte Blöcke werden als Datenbankobjekte gespeichert.
  • 🔁 Benannte Blöcke: Prozeduren und Funktionen sind benannte Blöcke, die wiederholt aufgerufen werden können.
  • ⛔ Abschluss: END schließt den Block, und ein Schrägstrich sendet ihn an den Compiler.

PL/SQL-Blockstruktur und Syntax

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:

  1. Deklarationsabschnitt
  2. Ausführungsabschnitt
  3. Abschnitt zur Ausnahmebehandlung

Das Bild unten veranschaulicht die verschiedenen PL/SQL-Blockabschnitte und deren Reihenfolge.

PL/SQL-Blockabschnitte und 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.

PL/SQL-Blocksyntax

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:

  1. Anonyme Blöcke
  2. 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:
  1. Ablauf
  2. Funktion

Mehr über diese benannten Blöcke erfahren Sie im Leitfaden zu Verfahren und Funktionen.

Häufig gestellte Fragen

Nur der Ausführungsteil, der mit BEGIN beginnt und mit END endet. Die Deklarations- und Ausnahmebehandlungsteile sind optional und können weggelassen werden, wenn sie nicht benötigt werden.

Ein anonymer Block hat keinen Namen, wird nicht gespeichert und wird in derselben Sitzung ausgeführt. Ein benannter Block, wie beispielsweise eine Prozedur oder Funktion, wird als Datenbankobjekt gespeichert und kann wiederholt aufgerufen werden.

In Tools wie SQL*Plus signalisiert der Schrägstrich in einer eigenen Zeile dem Compiler, dass der Block abgeschlossen ist und ausgeführt werden soll. Ohne ihn wartet das Tool weiterhin auf Eingaben.

Ja. KI kann die Logik in einem CREATE PROCEDURE-Header kapseln, Parameter hinzufügen und Deklarationen an die richtige Stelle verschieben. Testen Sie das Ergebnis, da eine gespeicherte Version möglicherweise explizite Parametermodi und eine Fehlerbehandlung benötigt.

Ja. Deklarations- und Ausnahmeabschnitte sind unabhängige Optionen. Ein Block kann mit BEGIN beginnen, Deklarationen überspringen und trotzdem vor END einen EXCEPTION-Abschnitt enthalten, um Laufzeitfehler abzufangen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: