In order to preserve transactional atomicity, database-side JDBC procedures
that use nested connections:
- cannot issue a commit or rollback, unless called within a CALL statement.
- cannot change connection attributes such as auto-commit.
- cannot modify the data in a table used by the parent statement that called
the procedure, using INSERT, UPDATE, or DELETE. For example, if a SELECT statement
using the T table calls the changeTables procedure, changeTables cannot
modify data in the T table.
- cannot drop a table used by the statement that called the procedure.
- cannot be in a class whose static initializer executes DDL statements.
In addition, the Connection object that represents the nested connection
always has its auto-commit mode set to false.