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 statements in CALL DML transactions

SESAM/SQL supports the SQL and CALL DML interfaces.
In mixed mode operation, both interfaces can be used together in an ESQL COBOL application (see the “ CALL-DM Applications” manual).
You can use SQL and CALL DML interfaces together within the same transaction: In order to simplify the step-by-step conversion to the SQL environment, it is possible to issue SQL statements within CALL DML transactions in existing CALL DML applications.

CALL DML transaction

A CALL DML transaction starts with the CALL DML statement BTA and ends with a roll forward or rollback of the transaction.
You use the CALL DML statement ETA to roll a CALL DML transaction forward. A transaction is rolled back either by means of the statement RTA or internally by SESAM/SQL DBH when, for example, a deadlock is resolved.
Under openUTM, a transaction is rolled forward by the PEND variable which ends the transaction and rolled back by rolling back the UTM transaction.

Permitted SQL statements in a CALL DML transaction

Within a CALL DML transaction you can execute all SQL statements which are used to query and change data, SQL statements for dynamic SQL, some SQL statements for session control, the CALL statement, and the WHENEVER statement (for the initiation of the SQL statements, see section “Summary of contents”).

The following SQL statements are not permitted within a CALL DML transaction:

  • COMMIT WORK

  • ROLLBACK WORK

Any statements which are not permitted in a SQL-DML transaction are also not permitted:

  • SET TRANSACTION

  • SET SESSION AUTHORIZATION

  • SQL statements for schema definition and administration

  • SQL statements for managing the storage structure

  • SQL statements for managing user entries

  • Utility statements

If the SET TRANSACTION statement is issued before a CALL DML transaction, the settings are only valid for existing SQL statements within the following (CALL DML) transaction. After the transaction is finished the defaults are valid again.