Die COMPOUND-Anweisung ist eine der Kontrollanweisungen in Routinen. Sie führt weitere SQL-Anweisungen in einem gemeinsamen Kontext aus. Für diese SQL-Anweisungen gelten gemeinsame lokale Daten, gemeinsame lokale Cursor und gemeinsame Fehler-Routinen.
Die detaillierte Beschreibung der COMPOUND-Anweisung finden Sie auf "COMPOUND - SQL-Anweisungen in gemeinsamem Kontext ausführen".
Lokale Daten
Lokale Daten sind Variablen oder Fehlernamen, die nur innerhalb der COMPOUND-Anweisung angesprochen werden können.
Die Namen der lokalen Daten müssen sich voneinander unterscheiden.
Für Variablen wird ein Datentyp und ggf. ein Standardwert definiert. Sie besitzen keine Indikatorvariable. Sie können in lokalen Cursor-Definitionen, lokalen Fehler-Routinen und den SQL-Anweisungen der COMPOUND-Anweisung verwendet werden.
Fehlernamen definieren zum leichteren Verständnis einen Namen für einen Fehler (ohne Angabe eines zugehörigen SQLSTATE) oder einen Namen für einen SQLSTATE. Sie können in lokalen Fehler-Routinen verwendet werden, siehe "COMPOUND - SQL-Anweisungen in gemeinsamem Kontext ausführen".
Lokale Cursor
Mit der Definition lokaler Cursor werden Cursor festgelegt, die nur innerhalb der COMPOUND-Anweisung angesprochen werden können.
Die Namen der lokalen Cursor müssen sich voneinander unterscheiden.
Lokale Cursor können in lokalen Fehler-Routinen und den SQL-Anweisungen der COMPOUND-Anweisung verwendet werden.
Lokale Cursor werden ohne die Klausel WITH HOLD definiert. Die SQL-Anweisungen STORE und RESTORE dürfen nicht auf lokale Cursor angewendet werden.
Gemeinsame Fehler-Routinen
Mit der Definition von Fehler-Routinen wird festgelegt, wie reagiert werden soll, wenn bei der Verarbeitung einer SQL-Anweisung im Rahmen der COMPOUND-Anweisung ein SQLSTATE ≠ '00000' gemeldet wird.
Wenn ein SQLSTATE auftritt, der in einer Fehler-Routine spezifiziert wurde, dann wird die Fehler-Routine für den SQLSTATE ausgeführt. Für sonstige SQLSTATEs führt SESAM/SQL automatisch eine Fehlerbehandlung durch.
In den Fehler-Routinen wird die Art der Fehlerbehandlung in Abhängigkeit vom SQLSTATE definiert. Dort entscheiden im Fehlerfall weitere SQL-Anweisungen, ob die Routine fortgesetzt oder beendet werden soll. Änderungen, die im Rahmen der COMPOUND-Anweisung durchgeführt wurden, können rückgängig gemacht werden.