Description: A database-side JDBC procedure can create a new connection instead of using a nested connection. Statements executed in the procedure will be part of a different transaction, and so can issue commits and rollbacks.
Keywords: Database-side JDBC procedures, using non-nested connections

# Database-side JDBC procedures using non-nested connections

A database-side JDBC procedure can create a new connection instead of using a nested connection. Statements executed in the procedure will be part of a different transaction, and so can issue commits and rollbacks.

Such procedures can connect to a database different from the one to which the parent SQL statement that called it is connected. The procedure does not use the same transaction or Connection. It establishes a new `Connection` and transaction.

Note: If database-side JDBC procedures do not use nested connections, this means that they are operating outside of the normal DBMS transaction control, so it is not good practice to use them indiscriminately.

- Invoking a procedure using the CALL command
  If a procedure uses only IN parameters, Derby can execute the procedure by using the SQL CALL command. A stored procedure with IN, OUT, or INOUT parameters can be invoked from a client application by using the CallableStatement method.

Parent topic: Programming database-side JDBC procedures
Related concepts
Database-side JDBC procedures and nested connections
Database-side JDBC procedures and SQLExceptions
User-defined SQLExceptions