当时时间比较着急,直接采取了釜底抽薪的办法——拔网线,这招很管用,再次执行drop user就成功了。考虑到以后不一定所有场合都允许你采取这种简单粗暴的办法,就在虚拟机上重现了这个报错,寻求一种较为温和的解决办法。
       首先我打开两个虚拟机,在1号虚拟机上启动了两个实例,打开了3个连接到scott用户的窗口;在2号虚拟机上启动了一个实例,打开了一个连接到scott用户的窗口。这时我登录sys用户执行drop user操作,复现了上述报错。

点击(此处)折叠或打开

  1. [oracle@enmoedu1 ~]$ sqlplus / as sysdba
  2. SQL*Plus: Release 11.2.0.3.0 Production on Fri Apr 17 21:25:40 2015
  3. Copyright (c) 1982, 2011, Oracle. All rights reserved.
  4. Connected to:
  5. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  7. SQL> drop user scott cascade;
  8. drop user scott cascade
  9. *
  10. ERROR at line 1:
  11. ORA-01940: cannot drop a user that is currently connected
  12. SQL>

首先,我们查看scott用户的连接状况;

点击(此处)折叠或打开

  1. SQL> select username,sid,serial# from v$session where username='SCOTT';
  2. USERNAME SID SERIAL#
  3. ------------------------------ ---------- ----------
  4. SCOTT 19 355
  5. SCOTT 20 13693
  6. SCOTT 26 15
  7. SCOTT 127 7
  8. SQL>

接下来,我们kill上述连接;

点击(此处)折叠或打开

  1. SQL> alter system kill session'19,355';
  2. System altered.
  3. SQL> alter system kill session'20,13693';
  4. System altered.
  5. SQL> alter system kill session'26,15';
  6. System altered.
  7. SQL> alter system kill session'127,7';
  8. System altered.
  9. SQL>

再次查询scott用户的连接状况,确认所有连接被清除完毕;

点击(此处)折叠或打开

  1. SQL>
  2. SQL> select username,sid,serial# from v$session where username='SCOTT';
  3. USERNAME SID SERIAL#
  4. ------------------------------ ---------- ----------
  5. SCOTT 19 355
  6. SCOTT 20 13693
  7. SCOTT 26 15
  8. SCOTT 127 7
  9. SQL>

看到这儿,不要惊慌,不要以为这些连接还在;我们只要查询一下上述连接的状态就明白了。

点击(此处)折叠或打开

  1. SQL>
  2. SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
  3. SADDR SID SERIAL# PADDR USERNAME STATUS
  4. -------- ---------- ---------- -------- ------------------------------ --------
  5. 578CC410 19 355 583AD258 SCOTT KILLED
  6. 578C9890 20 13693 583AD258 SCOTT KILLED
  7. 578B9390 26 15 583AD258 SCOTT KILLED
  8. 579DED90 120 95 5836FFB4 SYS ACTIVE
  9. 579CBD10 127 7 583AD258 SCOTT KILLED
  10. SQL>

由上述查询结果得知,scott用户的所有连接已经被kill了;现在我们执行drop user,看一下是否能够成功;

点击(此处)折叠或打开

  1. SQL>
  2. SQL> drop user scott cascade;
  3. User dropped.
  4. SQL>

由此,ORA-01940报错得到顺利解决。大家如果以后碰到这个问题,可以按照实际环境来决定是采取“简单粗暴”的解决办法(拔网线),还是上述这种“温和”的解决办法。

ORA-01940:无法删除当前已连接的用户的更多相关文章

  1. ORA-01940 无法删除当前已连接的用户之解决方案

    在执行drop user的时候,提示报错信息:ORA-01940: cannot drop a user that is currently connected SQL> drop user l ...

  2. oracle 删除用户,提示“无法删除当前已连接的用户”

    1. 首先查询出该用户的登录情况,注意用户名必须是大写 SQL> select username,sid,serial# from v$session where username = 'XST ...

  3. (转)oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”

    Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQLalter user XXX account lock; ...

  4. oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”

    Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQL>alter user XXX account l ...

  5. ORA-01940无法删除当前已连接用户

    原文地址:ORA-01940无法删除当前已连接用户作者:1736188794 1)查看用户的连接状况 select username,sid,serial# from v$session ------ ...

  6. ORA-01940:无法删除当前已链接的用户(转)

    (1)查看用户的连接状况 select username,sid,serial# from v$session ------------------------------------------ 如 ...

  7. ORA-01940:无法删除当前已链接的用户

    (1)查看用户的连接状况 select user name, sid, serial# from v$session; (2)找到要删除用户的sid,和serial,并删除 例如要删除用户nc633t ...

  8. linux系统中中断已连接的用户

    1.用w命令查看当前系统登录的用户 [root@rhel7 ~]# w :: up :, users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOG ...

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

    删除用户报错 SQL> drop user ODI_SRC CASCADE; drop user ODI_SRC CASCADE * 第 1 行出现错误: ORA: 无法删除当前连接的用户 查看 ...

随机推荐

  1. 机器学习理论基础学习3.4--- Linear classification 线性分类之Gaussian Discriminant Analysis高斯判别模型

    一.什么是高斯判别模型? 二.怎么求解参数?

  2. docker命令及操作

    docker pull 镜像名字 dockers images docker image ls docker image rm 镜像名/镜像ID docker ps docker ps -a dock ...

  3. 解决nginx下不能require根目录以外的文件

    我们常规的做法是将统一入口文件.css.js这些放在网站根木,其他php文件放到根目录外部,这个时候nginx访问是require不到的,需要设定一下 1.vi  /usr/local/nginx/c ...

  4. swift 错误集锦

    1.注册 NIB 出现错误 // error:'registerNib(_:forCellReuseIdentifier:)' has been renamed to 'register' (_:fo ...

  5. python import win32clipboard 报错DLL load failed: %1 不是有效的 Win32 应用程序。

    在python中引入win32clipboard时报错,DLL load failed: %1 不是有效的 Win32 应用程序 >>> import win32clipboardT ...

  6. 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。

    谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数. Google2009华南地 ...

  7. [转载]论asp.net out、ref、return

      论asp.net out.ref.return ref(引用类型) ref引用类型进出都必须赋值,赋值后会改变类型原来的指针.   out(值类型) out值类型进可以不赋值,出必须赋值.   r ...

  8. SVN版本服务器搭建

    windows:        https://blog.csdn.net/lu1024188315/article/details/74082227 SVN 的下载地址如下 http://torto ...

  9. 2018 Java线程热门面试题,你知道多少?

    面试,难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他 ...

  10. 4~20mA电流输出芯片XTR111完整电路

    http://www.51hei.com/bbs/dpj-41904-1.html 为了大家方便,我这里给大家提供一种久经考验的电路,省去了大家找资料的麻烦,直接可以使用,优点有二:一是原料好买,二是 ...