oracle中出现ORA

50次阅读
没有评论

共计 2243 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要为大家展示了“oracle 中出现 ORA-01940: 无法删除当前已连接的用户怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“oracle 中出现 ORA-01940: 无法删除当前已连接的用户怎么办”这篇文章吧。

在现场作业时,需要先删除用户;在执行 drop user 时提示“ORA-01940: cannot drop a user that is currently connected”,当时的环境如下:
操作系统:Windows XP
数据库:Oracle 10.2.0.1
        当时时间比较着急,直接采取了釜底抽薪的办法——拔网线,这招很管用,再次执行 drop user 就成功了。考虑到以后不一定所有场合都允许你采取这种简单粗暴的办法,就在虚拟机上重现了这个报错,寻求一种较为温和的解决办法。
        首先我打开两个虚拟机,在 1 号虚拟机上启动了两个实例,打开了 3 个连接到 scott 用户的窗口;在 2 号虚拟机上启动了一个实例,打开了一个连接到 scott 用户的窗口。这时我登录 sys 用户执行 drop user 操作,复现了上述报错。

点击 (此处) 折叠或打开

[oracle@enmoedu1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2..3.0 Production on Fri Apr 17 21:25:40 2015

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2..3.0 – Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL  drop user scott cascade;

drop user scott cascade

*

ERROR at line 1:

ORA-01940: cannot drop a user that is currently connected

SQL

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

点击 (此处) 折叠或打开

SQL  select username,sid,serial# from v$session where username= SCOTT

USERNAME SID SERIAL#

—————————— ———- ———-

SCOTT 19 355

SCOTT 20 13693

SCOTT 26 15

SCOTT 127 7

SQL

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

点击 (此处) 折叠或打开

SQL  alter system kill session 19,355

System altered.

SQL  alter system kill session 20,13693

System altered.

SQL  alter system kill session 26,15

System altered.

SQL  alter system kill session 127,7

System altered.

SQL

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

点击 (此处) 折叠或打开

SQL  

SQL  select username,sid,serial# from v$session where username= SCOTT

USERNAME SID SERIAL#

—————————— ———- ———-

SCOTT 19 355

SCOTT 20 13693

SCOTT 26 15

SCOTT 127 7

SQL

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

点击 (此处) 折叠或打开

SQL  

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

SADDR SID SERIAL# PADDR USERNAME STATUS

——– ———- ———- ——– —————————— ——–

578CC410 19 355 583AD258 SCOTT KILLED

578C9890 20 13693 583AD258 SCOTT KILLED

578B9390 26 15 583AD258 SCOTT KILLED

579DED90 120 95 5836FFB4 SYS ACTIVE

579CBD10 127 7 583AD258 SCOTT KILLED

SQL

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

点击 (此处) 折叠或打开

SQL  

SQL  drop user scott cascade;

User dropped.

SQL

由此,ORA-01940 报错得到顺利解决。

以上是“oracle 中出现 ORA-01940: 无法删除当前已连接的用户怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2243字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)