Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SQL-Anweisungen in CALL-DML-Transaktionen

SESAM/SQL unterstützt die SQL- und die CALL-DML-Schnittstelle.
In einer ESQL-COBOL-Anwendung können im Mischbetrieb beide Schnittstellen zusammen verwendet werden (siehe Handbuch „ CALL-DML Anwendungen“).
SQL- und CALL-DML-Schnittstelle können auch innerhalb einer Transaktion gemischt werden: Um bei bestehenden CALL-DML-Anwendungen den schrittweisen Einstieg in die SQL-Welt zu erleichtern, ist es möglich, SQL-Anweisungen innerhalb von CALL-DML-Transaktionen abzusetzen.

CALL-DML-Transaktion

Eine CALL-DML-Transaktion beginnt mit der CALL-DML-Anweisung BTA und endet mit dem Vor- oder Rücksetzen der Transaktion.
Vorgesetzt wird eine CALL-DML-Transaktion durch die CALL-DML-Anweisung ETA. Zurückgesetzt wird sie durch die Anweisung RTA oder intern durch den SESAM/SQL-DBH, etwa bei Deadlock-Auflösung.
Unter openUTM wird eine Transaktion durch eine transaktionsbeendende PEND-Variante vorgesetzt, zurückgesetzt wird sie durch Rücksetzen der UTM-Transaktion.

Erlaubte SQL-Anweisungen in einer CALL-DML-Transaktion

Innerhalb einer CALL-DML-Transaktion können Sie alle SQL-Anweisungen zum Abfragen und Ändern von Daten, SQL-Anweisungen der dynamischen SQL, einige SQL-Anweisungen zur Sessionsteuerung, die CALL-Anweisung und die WHENEVER-Anweisung ausführen (zur Einteilung der SQL-Anweisungen siehe Abschnitt „Inhaltliche Zusammenstellung“ ).

Innerhalb einer CALL-DML-Transaktion sind folgende SQL-Anweisungen nicht erlaubt:

  • COMMIT WORK

  • ROLLBACK WORK

Nicht erlaubt sind außerdem alle Anweisungen, die auch in einer SQL-DML-Transaktion nicht verwendet werden dürfen:

  • SET TRANSACTION

  • SET SESSION AUTHORIZATION

  • SQL-Anweisungen zur Schemadefinition und -verwaltung

  • SQL-Anweisungen zur Verwaltung der Speicherstruktur

  • SQL-Anweisungen zur Verwaltung von Benutzereinträgen

  • Utility-Anweisungen

Wird die Anweisung SET TRANSACTION vor Beginn einer CALL-DML-Transaktion eingegeben, so gelten die Einstellungen nur für gegebenenfalls vorhandene SQL-Anweisungen innerhalb der folgenden (CALL-DML-)Transaktion. Nach Ende der Transaktion gelten wieder die Voreinstellungen.