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

用刪除某個用戶,可是刪除時有用戶鏈接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

這裏我很納悶,爲何ORACLEkill命令並不能真正殺掉進程嗎?

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

 

System altered.

 

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

 

System altered.

可是我在kill掉進程後,立刻刪除用戶,用戶就直接被刪除了。難道ORACLEkill命令並不真正的殺掉用戶進程,而只是表面上的一直現象,後面的操做纔是真正的起做用?

SQL>  drop user test cascade;

 

User dropped.

相關文章
相關標籤/搜索