PL/SQL: Anonyme Blöcke1
Aus Wikibooks
Als Anonyme Blöcke werden Code-Zeilen bezeichnet, die keinen Bezeichner besitzen.
Der Aufbau eines PL/SQL-Blocks sieht wie folgt aus:
[Bearbeiten] Listing: AnonymousBlock
-
[declare -- Deklarationsblock] begin -- Eigentliches Programm [exception -- Ausnahmebehandlung] end;
Hierbei sind der Deklarationsblock und die Ausnahmebehandlung optional. Das SQL-Statement kann stark verkürzt werden, sodass nur noch ein simples
[Bearbeiten] Listing: minimaler Anonymous Block
-
begin null; end;
übrigbleibt. Anonyme Blöcke können beliebig geschachtelt werden. Dies erweist sich als nützlich, wenn man einen Befehl ausführen muss, unabhängig, ob der vorrangegangene Befehl fehlgeschlagen ist.
[Bearbeiten] Listing: geschachtelte Anweisungen
BEGIN
BEGIN /* schritt 1 wird ausgeführt */
do_something();
EXCEPTION /* beim Fehler e_exceptionAusSomething, hat er seine
eigene Ausnahmebehandlung */
WHEN e_exceptionAusSomething THEN
BEGIN
cure_error();
END;
END;
BEGIN /* Schritt 2 wird ausgeführt, unabhängig, ob 1 fehlgeschlagen ist */
do_step_2();
EXCEPTION /* Ausnahmebehandlung für den Fehler e_exceptionAusStep
für Schritt 2 */
WHEN e_exceptionAusStep THEN
BEGIN
log_error();
END;
END;
EXCEPTION /* Ausnahmebehandlung für Exceptions aus Schritt 1 und 2,
die noch nicht behandelt wurden */
WHEN OTHERS THEN
BEGIN
log_error();
END;
END;

