SQL> col username format a10
SQL> l
1 select username, sid, serial#, status
2 from v$session
3* where username = 'ANDREW'
SQL> /
USERNAME SID SERIAL# STATUS
---------- ---------- ---------- --------
ANDREW 143 79 INACTIVE
SQL>
You can then use the SID and SERIAL# displayed to kill a session as shown below. The username you are interested in may have more than one session. If this happens, you will need to use one or more of the other columns in V$SESSION (e.g.OSUSER, MACHINE, LOGON_TIME etc) to see exactly which session you want to get rid of:
SQL> alter system kill session '143,79';
System altered.
SQL>
The killed session stays in V$SESSION with a status of KILLED:
SQL> select username, sid, serial#, status
2 from v$session
3 where username = 'ANDREW';
USERNAME SID SERIAL# STATUS
---------- ---------- ---------- --------
ANDREW 143 79 KILLED
SQL>
Until the user tries to access it again (the connection was made earlier). He will then get an ORA-00028:
SQL> conn andrew/reid@test10
Connected.
SQL> select sysdate from dual;
select sysdate from dual
*
ERROR at line 1:
ORA-00028: your session has been killed
SQL>
... and the session will disappear from V$SESSION:
SQL> select username, sid, serial#, status
2 from v$session
3 where username = 'ANDREW';
no rows selected
SQL>
No comments:
Post a Comment