用刪除某個用戶,可是刪除時有用戶鏈接sql
SQL> conn /as sysdbasession
Connected.spa
SQL> drop user test cascade;進程
drop user test cascadeio
*test
ERROR at line 1:select
ORA-01940: cannot drop a user that is currently connected查詢
經過查看用戶的進行,並kill用戶進程,而後刪除用戶db
SQL> select sid,serial# from v$session where username='test'; dba
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.