重新创建用户,及表空间,删除用户时候,出现错误提示,被删除的目标用户处于连接状态。
删除用户语句:drop user amhdgf cascade;
删除表空间语句:drop tablespace amhdgf including contents and datafiles;
方法1.先锁定用户、然后查询进程号,先杀死对应的进程、再删除对应的用户:
查询数据库所有当前连接的用户:select user name, sid, serial# from v$session;从视图中查找,如下图:
杀死 kill 目标用户,语句如下:alter system kill session '69,11660' ;
执行完以后,就可顺利drop掉想要删除的用户,进行重新创建用户了!
如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,用如下语句查看:
-------------------------------------
select saddr,sid,serial#,paddr,username,status from v$session where username is not null
结果如下(以我的库为例):
--------------------------------------------------------------------------------------------------------
564A1E28
564A30DC
564A5644
564B6ED0
564B8184
status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。
由此可见,WUZHQ这个用户的session已经被杀死。此时可以安全删除用户。
方法2.shutdown掉数据库,重启数据库后再执行drop命令: