玩命加载中 . . .

Oracle案例--错误码之ORA-01940


ORA-01940:无法删除当前已链接的用户

现象

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

原因

当前用户正在与数据库建立连接,session关系还在。

解决方法

Kill掉对应的session既可。

1、 查询对应用户与当前数据库连接的session信息

SQL> set wrap off    
SQL> set lin 200
SQL> set pagesize 0
SQL> select username,sid,serial# from v$session where username ='UFUSER';
UFUSER                                513         81
UFUSER                                515         62
UFUSER                                516      49583
UFUSER                                517      38584
UFUSER                                519      12508
UFUSER                                520      36408
UFUSER                                522      64260
UFUSER                                523      59321
UFUSER                                524       4285
UFUSER                                525      42644
UFUSER                                529        181
UFUSER                                530      44970

2、kill session操作

alter system kill session'513,81';
alter system kill session'515,62';
alter system kill session'516,49583';
alter system kill session'519,12508';
alter system kill session'520,36408';
alter system kill session'522,64260';
alter system kill session'523,59321';
alter system kill session'524,4285';
alter system kill session'525,42644';
alter system kill session'529,181';
alter system kill session'530,44970';

3、查询session信息确定该session是否被kill

select saddr,sid,serial#,paddr,username,status from v$session where username is not null and username ='UFUSER';

status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。

4、如果session被kill掉,然后执行drop user操作。


文章作者: Gavin Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gavin Wang !
  目录