删除某个用户时报ORA-01940

删除某个用户时报ORA-01940,是由于该用户还有session连接,因此先用sysdba用户kill该用户session,再删除该用户即可。示例如下:
SQL> drop user PDS cascade;
drop user PDS cascade //PDS为数据库用户名
*
ERROR 位于第 1 行:
ORA-01940: 无法删除当前已连接的用户
SQL> select username,sid,serial# from v$session;
USERNAME SID SERIAL#
------------------------------ ---------- ----------
SYS 10141 53
ADRIANO 10234,24
已选择2行。
SQL> alter system kill session'10234,24';
系统已更改。
SQL> drop user ADRIANO cascade;
用户已丢弃
如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,用如下语句查看:
sql>select saddr,sid,serial#,paddr,username,status from v$session where username is not null 
status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。

猜你喜欢

转载自blog.csdn.net/zdagf/article/details/52586625