ORA-01940
试图级联删除所有内容的用户,但失败并出现 ORA-01940。
SQL> drop user hr cascade;
drop user hr cascade
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connectedORA-01940 表示某些用户仍在连接到您要删除的帐户,因此 Oracle 暂时无法删除它。
让我们看看谁还在连接它。
SQL> column machine format a30;
SQL> column osuser format a20;
SQL> select machine, osuser from v$session where username = 'HR';
MACHINE OSUSER
------------------------------ --------------------
WORKGROUP\LAPTOP-B0A8Y34T scott如您所见,有一个会话连接到该帐户。
解决方案
在我们删除用户之前,需要断开连接到该帐户的所有会话。您可以要求他们正常退出会话。或者干脆杀死会话,如果他们不介意的话。
在这里,我们编写了一些杀死会话的语句。
SQL> select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' stmts from v$session where username = 'HR';
STMTS
--------------------------------------------------------------------------------
alter system kill session '1725,53875' immediate;然后我们发布声明。
SQL> alter system kill session '1725,53875' immediate;
System altered.现在我们可以做我们的工作了。
SQL> drop user hr cascade;
User dropped.原文标题:How to Resolve ORA-01940: cannot drop a user that is currently connected
原文作者: Ed Chen
原文链接:https://logic.edchen.org/how-to-resolve-ora-01940-cannot-drop-a-user-that-is-currently-connected/
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




