Oracle 无法删除当前已连接的用户

转载 2015年11月18日 17:13:26

如果用户还在连接,就无法删除,必须强制用户下线,当然我第一次遇到这个问题不是我没有断开而是好像数据库存在问题,当我重新登录pl/sql develop时问题就解决了,当然我们可以通过pl/sql develop主动断开会话。

(1)查看用户的连接状况

select username,sid,serial# from v$session

------------------------------------------

如下结果:

username          sid                serial#

----------------------------------------

NETBNEW          513              22974
NETBNEW          514              18183
NETBNEW          516              21573
NETBNEW          531              9
WUZHQ             532              4562

(2)找到要删除用户的sid,和serial,并删除

-------------------------------------------

如:你要删除用户'WUZHQ',可以这样做:

alter system kill session'532,4562'

(3)删除用户

--------------------------------------------

drop user username cascade

(**)如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,用如下语句查看:

-------------------------------------

select saddr,sid,serial#,paddr,username,status from v$session where username is not null

结果如下(以我的库为例):

saddr                     sid           serial#            paddr              username              status

--------------------------------------------------------------------------------------------------------

564A1E28              513           22974            569638F4        NETBNEW             ACTIVE
564A30DC              514          18183            569688CC        NETBNEW            INACTIVE
564A5644              516           21573            56963340        NETBNEW            INACTIVE
564B6ED0              531           9                   56962D8C        NETBNEW            INACTIVE
564B8184              532          4562               56A1075C        WUZHQ                KILLED

status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。

由此可见,WUZHQ这个用户的session已经被杀死。此时可以安全删除用户。

相关文章推荐

Oracle(一)ORACLE-01940 无法删除当前已连接的用户

1.alter user XXX account lock;SELECT * FROM V$SESSION WHERE USERNAME='LGDB';alter system kill sessio...

Oracle中删除用户和表空间的常见问题(比如:ORA-01940无法删除当前已连接用户的解决方案)

ORA-01940无法删除当前已连接用户的解决方案 1)查看用户的连接状况 select username,sid,serial# from v$session (2)找到要删除用户的sid...

解决ORA-29857:表空间中存在域索引和/或次级对象 & ORA-01940:无法删除当前连接的用户问题

今天ArcGIS的SDE发生了一点小故障,导致系统表丢失,所以需要重建一下SDE数据库,在删除SDE用户和所在的表空间过程中遇到下面两个ORA错误,解决方法如下: 1)删除表空间时报错:ORA-298...

无法删除当前已连接的用户

有时候为了某些测试,需要导库,在开发库、测试库、正式库之间导来导去,特别是在项目前期比较频繁,简单点做需要在导入前,将已有的库角色删除,错误这个经常会碰到: 无法删除当前连接的用户。 解决方案1:...

Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包

--delete tablesSql代码 select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;   ...

oracle删除table不进回收站,清除当前用户的回收站

Oracle 回收站功能,彻底删除表 Oracle 10g 中出现表名:BIN$2cMp4FjwQ2Cw3Lj+BxLYTw==$0最近发现Oracle中出现了这些奇怪的表名,上网查找后发现是ora...
  • mikean
  • mikean
  • 2013年10月20日 12:06
  • 1922

oracle删除table不进回收站,清除当前用户的回收站

Oracle 回收站功能,彻底删除表 Oracle 10g 中出现表名:BIN$2cMp4FjwQ2Cw3Lj+BxLYTw==$0 最近发现Oracle中出现了这些奇怪的表名,上网查找后发现是...

Oracle 删除用户、当前用户数据库表、表空间的过程

1. 删除用户如果要删除的用户当前没有连接,则可以直接用下面语句删除; 如果要删除的用户当前存在连接,转到 Oracle删除当前连接用户 /* CASCADE 的意思是将用户的数据库数据一并删除,并...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle 无法删除当前已连接的用户
举报原因:
原因补充:

(最多只允许输入30个字)