oracle:ORA-01940无法删除当前已连接用户的解决方案
由于开发过程中对数据库的操作比较多,另外也是怕占用资源,决定将数据库所使用用户删除掉,然后可能是资源占用,oracle报错了,提供解决方案:
1.首先将索要删除的用户锁定(这句必须执行):
alter user 用户名 account lock;
2.查看当前用户占用资源:
select saddr,sid,serial#,paddr,username,status from v$session where username = '用户名';
然后可以看到status 为 INACTIVE 的记录;
3. 执行以下杀死进程的sql(下面的两个参数是status 为 INACTIVE 时的记录):
alter system kill session 'sid,serial#';
4. 执行删除用户操作
drop user 用户名 cascade;
注意:如果发现 v$session 表中一直存在状态 为 INACTIVE 的记录,那么,恭喜你,你可能蠢蠢的忘记执行第一句 锁住用户的sql了,笨蛋~
你以后的气质里,藏着你走过的路,读过的书和爱过的人。