Oracle database transactions end in multiple ways. Explicitly with COMMIT (save changes) or ROLLBACK (discard changes). Implicitly when a DDL statement (CREATE, ALTER, DROP) or DCL statement (GRANT, REVOKE) executes - these auto-commit. Also when user exits the client tool (iSQL*Plus/SQL*Plus) or if the system crashes (forced rollback/commit). Any of these events terminate the current transaction.