ORA-01940 无法删除当前已连接的用户之解决方案

在执行drop user的时候,提示报错信息:ORA-01940: cannot drop a user that is currently connected

SQL> drop user ecity ;
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected

造成这个问题的原因是很明显的,有用户在连接,不允许drop掉该user。

解决方案:

首先查询一下数据中有没有用户在使用

select username,sid,serial#,paddr from v$session where username='ECITY';
USERNAME SID SERIAL# PADDR
------------------------------ ---------- ------------------------------------------------- ECITY 634 7 00000000C028D198
SQL
> select PROGRAM from v$process where addr='00000000C028D198';
PROGRAM
---------------------------------------------------------------------------------------------------------- Oracle@oradb01 (DW00)

其次杀掉系统中的这个进程

SQL> alter system kill session '634,7';
System altered.

然后执行删除操作,即可完成

SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
SQL> drop user ecity CASCADE;
User dropped.

问题解决,记得KILL进程前,先看看是啥进程,哪台机连过来的,能否KILL等等。避免杀掉其他进程

原文地址:https://www.cnblogs.com/lwlxqlccc/p/8694696.html