用删除某个用户,可是删除时有用户链接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.