Question: I want to drop some users in Oracle DB using sqlplus but I am getting error:

```
SQL> DROP USER test CASCADE;
DROP USER test CASCADE
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected

```

I followed the link in SO to find out the sessions - [Dropping a connected user from an Oracle 10g database schema](https://stackoverflow.com/questions/85804/dropping-a-connected-user-from-an-oracle-10g-database-schema)

But when I ran the command I am not getting any results:

```
SQL> select sid,serial# from v$session where username = 'test';

no rows selected

```

Please help me how to drop users in this case.

Answer: 
Users are all capitals in `v$session` (and data dictionary views). If you match with capitals you should find your session to kill.

```
SELECT s.sid, s.serial#, s.status, p.spid 
  FROM v$session s, v$process p 
 WHERE s.username = 'TEST' --<<<--
  AND p.addr(+) = s.paddr
 /

```

Pass actual SID and SERIAL# values for user TEST then drop user...:

```
ALTER SYSTEM KILL SESSION '<SID>, <SERIAL>'
/

```
I was trying to follow the flow described here - but haven't luck to completely kill the session.. Then I fond additional step here:  

<http://wyding.blogspot.com/2013/08/solution-for-ora-01940-cannot-drop-user.html>  

What I did:  

 1. `select 'alter system kill session ''' || sid || ',' || serial# || ''';' from v$session where username = '<your_schema>';` - as described below.  
Out put will be something like this:  
`alter system kill session '22,15' immediate;`  

 2. `alter system disconnect session '22,15' IMMEDIATE ;` - 22-sid, 15-serial - repeat the command for each returned session from previous command  

 3. Repeat steps 1-2 while `select...` not return an empty table  

 4. Call
 `drop user...`

What was missed - call `alter system disconnect session '22,15' IMMEDIATE ;` for each of session returned by `select 'alter system kill session '..`