ORA-01940 无法删除当前连接的用户

---- bayaim ,个人原创

---- 2024年9月12日17:36:50

 

ORA-01940 无法删除当前连接的用户
----------------------------------------------------

1、现象:

删除用户 
drop  user  ECOLOGY  cascade;
 
报错: ora01940 无法删除当前连接的用户
 

2、解决办法:

-- 查看用户的sid和serial
select username,sid,serial#,program from v$session where username='ECOLOGY';

-- 如果用户已连接数的较少,可以手动删除
alter system kill session '385,29016';


-- 如果用户已连接数的较多,可以批量删除
select 'alter system kill session ''' || sid || ',' || serial# || ''';'    
from 
(
SELECT SE.sid, SE.serial#, SUBSTR(SE.machine, 1, 30) MACH
  FROM v$session SE, v$sqlarea SQ, v$process PR
 WHERE SE.paddr = PR.ADDR(+)
   AND SE.sql_address = SQ.address(+)
   AND  SE.USERNAME like '%ECOLOGY%'
 );
 
 
alter system kill session '10,503';
alter system kill session '1144,964';
alter system kill session '1151,17866';
alter system kill session '1153,32599';
……


-- 在服务器上,使用sysl链接数据库,再次删除用户
 drop  user  ECOLOGY  cascade;

测试结果:1、如果数据库的对象较多,删除会很久
        2.不如 DBCA 删库


-- 查看用户session的状态

select saddr,sid,serial#,paddr,username,status from v$session 
where username is not null and username='ECOLOGY';


 

 

posted @ 2024-09-12 17:38  上帝_BayaiM  阅读(396)  评论(0编辑  收藏  举报