← Sessions & Locks
Oracle · Sessions & Locks
How to disconnect a session in Oracle
Disconnect an Oracle session cleanly with ALTER SYSTEM DISCONNECT SESSION POST_TRANSACTION or IMMEDIATE.
Tested on11g12c18c19c21c23ai26ai
DISCONNECT SESSION kills the dedicated server process behind the session. POST_TRANSACTION waits for the open transaction to finish; IMMEDIATE cuts it off and rolls back.
This ends the session and its server process. POST_TRANSACTION is safer for OLTP — it lets the current transaction commit or roll back first. Use IMMEDIATE only when you have to.
-- Find the session first
SELECT sid, serial#, username, machine, program, status, last_call_et
FROM v$session
WHERE username = UPPER('&&target_user')
ORDER BY last_call_et;
-- Wait for the current transaction, then disconnect
ALTER SYSTEM DISCONNECT SESSION '&&sid,&&serial' POST_TRANSACTION;
-- Or force it immediately (rolls back)
-- ALTER SYSTEM DISCONNECT SESSION '&sid,&serial' IMMEDIATE;
-- Verify (read-only)
SELECT sid, serial#, username, status
FROM v$session
WHERE sid = &sid AND serial# = &serial;sessionsdisconnectalter system