7.2 Aufbau einer Routine

Eine Routine wird durch einen Header eingeleitet. Der Header besteht aus dem Namen der Routine, einer optionalen Parameterliste und der RETURNS Klausel, wenn es sich um eine Funktion handelt.
Die Routine selbst besteht aus beliebig vielen Blöcken von PL- und/oder SQL-Anweisungen. Ein Block wird eingeleitet durch das Schlüsselwort BEGIN und endet mit dem Schlüsselwort END. Es kann nur einen äußeren BEGIN/END Block in einer Routine geben. Innerhalb dieses Blocks können jedoch weitere BEGIN/END (geschachtelt) integriert werden. Besteht eine Routine aus genau einer (ausführbaren) PL- oder SQL-Anweisung, muß kein BEGIN/END Block definiert werden.
Innerhalb eines BEGIN/END Blocks können deklarative und ausführbare Anweisungen vorkommen. Innerhalb des deklarativen Teils können folgende Anweisungen bzw. Deklarationen verwendet werden: Alle Deklarationen müssen am Anfang eines Blocks direkt hinter dem Schlüsselwort BEGIN stehen.
Nach dem deklarativen Teil folgt der ausführbare Teil einer Routine. Der ausführbare Teil einer Routine besteht aus beliebig vielen PL- und/oder SQL-Anweisungen.
Die PL-Anweisungen, die innerhalb eines Blocks verwendet werden können sind die folgenden, wobei hier auch die deklarativen PL-Anweisungen aufgeführt sind:

PL-Anweisung Funktion Art der Anweisung
BEGIN ... END Einen Block von Anweisungen definieren. Deklarativ
BREAK Abbruch einer FOR, FOREACH oder WHILE Schleife. Ausführbar
CALL Eine Prozedur oder Funktion aufrufen. Ausführbar
CASE Programmausführung in Abhängigkeit von verschiedenen Werten. Ausführbar
CONTINUE Ausführung am Beginn einer FOR, FOREACH oder WHILE Schleife fortsetzen. Ausführbar
DECLARE Deklaration von lokalen oder globalen Variablen und Konstanten. Deklarativ
DECLARE EXCEPTION Deklaration einer EXCEPTION für einen bestimmten Fehlerzustand. Deklarativ
DECLARE HANDLER Verknüpfung einer HANDLER Prozedur mit einer EXCEPTION. Deklarativ
FOR Ausführung einer Schleife. Ausführbar
FOREACH Ausführung einer Schleife für jeden Datensatz einer Ergebnismenge. Ausführbar
IF Ausführung in Abhängigkeit einer logischen Bedingung. Ausführbar
LET Zuweisung eines Wertes an eine Variable. Ausführbar
RETURN Die Ausführung einer Routine beenden und zum Aufrufer zurückkehren. Ausführbar
SET Zuweisung eines Wertes an eine Variable. Ausführbar
SIGNAL Eine benutzerdefinierte EXCEPTION aktivieren. Ausführbar
WHILE Ausführung einer Schleife. Ausführbar
WRITE Expressionwerte auf stdout ausgeben. Diese Anweisung kann nur über das SQL-Serverprogramm im Batchbetrieb (yardsrv -b) ausgeführt werden. Ausführbar

Die PL-Anweisungen werden im weiteren Verlauf dieses Kapitels in den entsprechenden Abschnitten näher erläutert. Weiterhin befindet sich in Kapitel 6, Procedure Language Referenz, eine Referenzbeschreibung der einzelnen Anweisungen.

Neben den oben aufgeführten PL-Anweisungen können die folgenden SQL-Anweisungen in Routinen verwendet werden:

Eine vollständige Beschreibung aller SQL-Anweisungen befindet sich in Kapitel 4, SQL- Referenz.
Eine vollständige Beschreibung aller PL-Anweisungen befindet sich in Kapitel 6, Procedure Language Referenz.