您的位置:首页 > 运维架构

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

2015-11-17 00:00 197 查看
摘要: ORA-01940: cannot drop a user that is currently connected .

用删除某个用户,但是删除时有用户连接

SQL> conn /as sysdba

Connected.

SQL> drop user test cascade;

drop user test cascade

*

ERROR at line 1:

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

通过查看用户的进行,并kill用户进程,然后删除用户

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

no rows selected

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

SID SERIAL#

---------- ----------

150 9019

SQL> alter system kill session '150,9019';

System altered.

注:这里有点怪,我明明通过kill杀掉了TEST的连接会话,但是我还可以通过test用户行sql的查询,所以造成了我继续查询出现了两条信息。

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

SID SERIAL#

---------- ----------

138 2947

150 9019

这里我很纳闷,为什么ORACLE的kill命令并不能真正杀掉进程吗?

SQL> alter system kill session '150,9019';

System altered.

SQL> alter system kill session '138,2947';

System altered.

但是我在kill掉进程后,马上删除用户,用户就直接被删除了。难道ORACLE的kill命令并不真正的杀掉用户进程,而只是表面上的一直现象,后面的操作才是真正的起作用?

SQL> drop user test cascade;

User dropped.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: