Oracle Database / Sessions, Locks & Transactions
Investigate a rollback-to-savepoint failure in application code
An expected savepoint may no longer exist after a commit, full rollback or implicit DDL boundary. Capture the operation sequence rather than only the final rollback error.
Environment and inputs: Oracle Database 19c baseline · SQL*Plus-compatible SQL unless RMAN, DGMGRL, ADRCI or a host shell is specified. Check release, patch level, edition and container first.
Start with this diagnostic
Use the stated SQL, RMAN, DGMGRL or host shell and replace sample names with approved targets. DBA and V$ views need authorized catalog access in the correct container. Do not grant broad privileges for an example.
SELECT SYS_CONTEXT('USERENV','SESSION_USER') AS session_user, SYS_CONTEXT('USERENV','SID') AS sid FROM dual;
Read the result
The session identity helps check whether the same connection executed the savepoint and rollback. Pools must not move a transaction between unrelated sessions.
Resolve and verify
Trace sanitized transaction boundaries and remove unintended commits or DDL from the unit of work. Test nested error-handling paths in a development environment.
Operational precautions
Do not assume a savepoint survives a commit or that DDL is transaction-neutral in Oracle.