ORA-01940 cannot drop a user that is currently connected

336 阅读1分钟

问题:Oracle 数据库删除用户提示“ORA-01940 cannot drop a user that is currently connected”

解决办法:

  1. 仔细检查以确保用户未连接到当前实例
    select s.sid, s.serial#, s.status, p.spid
    from v$session s, v$process p
    where s.username = 'myuser'
    and p.addr (+) = s.paddr;
    
    如果有连接的用户,执行下面语句,然后再次查询确认,如果已经显示连接都被 kill,重 新执行删除用户语句
    alter system kill session '<sid>,<serial#>';
    
  2. 如果还是不行,检查用户是否未与任何活动作业关联
    select job from dba_jobs where log_user='myuser';
    
  3. 最后,检查用户是否未与任何Streams复制队列关联
    select queue_table, qid from dba_queues where owner='myuser';
    
    select apply_name from dba_apply where queue_owner='myuser'; 
    
    select capture_name, queue_name from dba_capture where
    queue_owner='myuser';
    
    select propagation_name from dba_propagation where source_queue_owner='myuser' or
    destination_queue_owner='myuser';