ORA-01940: cannot drop a user that is currently connected

You can get “ORA-01940: cannot drop a user that is currently connected” error during the drop any user.

 

Details of error are as follows.

SQL>drop user MSD cascade;
drop user username cascade
*
ERROR at line 1:ORA-01940: cannot drop a user that is currently connected

 

To solve this problem, you need to lock related user firstly.

SQL> alter USER MSD account lock;

User altered.

 

Then kill the session of related user as follows.

SQL> select s.sid, s.serial#, s.status, p.spid from gv$session s, gv$process p where s.username = 'MSD' and p.addr (+) = s.paddr;
SID SERIAL# STATUS SPID
——— ———- ——– ————
163 34 INACTIVE 342463
634 63 INACTIVE 153783

 

 

 

Kill these sessions as follows.

SQL> alter system kill session '163,263,@1';
System altered.

SQL> alter system kill session '634,63,@2';
System altered.

 

If this sessions are not killed by using kill session command, then use the Kill -9 OS command as follows.

Find the SPID of related session and execute the following command on Operating system.

 

$ kill -9 SPID

 

select 'kill -9 ' || P.SPID ,s.sid,S.USERNAME from v$session s ,v$process p where S.PADDR=P.ADDR and S.SID=163;

select 'kill -9 ' || P.SPID ,s.sid,S.USERNAME from v$session s ,v$process p where S.PADDR=P.ADDR and S.SID=634;



kill -9 15736

kill -9 16842

 

Execute this command on operating system, session will be killed forcily.

 

 

Now you can drop this user ( SCHEMA )

SQL> drop user MSD cascade;
User dropped.

 

 

Do you want to learn Oracle Database for Beginners, then read the following articles.

https://ittutorial.org/oracle-database-19c-tutorials-for-beginners/

 1,396 views last month,  7 views today

About Mehmet Salih Deveci

I am Founder of SysDBASoft IT and IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress [email protected].-                                                                                                                                                                                                                                                 -Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  [email protected] a mail atabilirsiniz.

2 comments

  1. Mohammed Anzar Khan

    Dear Mehmet,

    Salam Brother!!!

    Thanks for sharing your knowlege with us. Above workaround will help mostly but sometimes we faced that after kille using sid & serial# it went into KILLED status and still not able to drop user. Please let us know the solution for this. Your response will be much appreciate!!!

    Thanks, Anzar Khan

    • Alaikum Salam Mohammed Brother,

      If this sessions are not killed by using kill session command, then use the Kill -9 OS command as follows.

      Find the SPID of related session and execute the following command on Operating system.

      $ kill -9 SPID

      select ‘kill -9 ‘ || P.SPID ,s.sid,S.USERNAME from v$session s ,v$process p where S.PADDR=P.ADDR and S.SID=163;

      select ‘kill -9 ‘ || P.SPID ,s.sid,S.USERNAME from v$session s ,v$process p where S.PADDR=P.ADDR and S.SID=634;

      kill -9 15736

      kill -9 16842

      Execute this command on operating system, session will be killed forcily.

Leave a Reply