oracle - 无法删除当前已连接的用户

标签 oracle oracle11g

我正在尝试重新初始化 Oracle DB 并看到以下错误:

  [sql] Failed to execute:  drop user conns cascade
  [sql] java.sql.SQLException: ORA-01940: cannot drop a user that is currently connected
  [sql] Failed to execute:  create user conns identified by conns default tablespace tbs_conns temporary tablespace temp1
  [sql] java.sql.SQLException: ORA-01920: user name 'CONNS' conflicts with another user or role name

问题是没有人 已连接:这是我本地计算机上的一个实例,没有外部连接,我刚刚重新启动并且没有运行其他任何东西。我唯一能想到的是 Oracle 可能有一些后台(清理?)任务正在运行,导致此问题,但我不知道如何查找/管理它。有任何想法吗?

更新 :这个脚本实际上删除并重新初始化了一堆表,在尝试重新运行几次后,我收到了相同的错误消息,但在不同的表上:Failed to execute: drop user csmy cascade .经过几次尝试,它转移到另一个用户:Failed to execute: drop user deb cascade .似乎有什么东西按字母顺序锁定了这些表,一次一个!

更新 2 :在重新运行脚本大约 15 次之后——每次都在字母表中稍微靠前的 table 上失败——它已经完成了并且一切正常。我仍然很想知道到底发生了什么 - 我最好的猜测是一些后台 Oracle 进程,但我不知道如何检查。

更新 3 :我上次重新运行脚本时再次遇到了同样的问题,这次在用户“cap”上失败了。为了尝试新的东西,我启动了 sqlplus 并手动运行了 drop user cap cascade命令,瞧,它工作得很好。我尝试了脚本,它运行完成。因此,由于手动删除用户没有问题,我强烈怀疑脚本本身是罪魁祸首。

最佳答案

脚本是否使用相同的连接?是否尝试同时删除多个用户?

看起来如果遇到错误,它只是继续下一步。

不同模式中的对象之间可能存在依赖关系,这可能会阻止模式 A 中的对象被删除,直到模式 B 中的对象被删除。因此,如果最初可能无法删除架构 A,但如果架构 B 已被删除,则重试成功。

关于oracle - 无法删除当前已连接的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4169441/

相关文章:

java - 由 : java. sql.SQLException : ORA-06550: line 1, 第 7 列引起:PLS-00306:调用 'PR_SP_FAHMI' 时参数数量或类型错误

sql - 用PLSQL中的另一个数字替换日期中的日期部分

sql - Db2/Oracle-无法去掉空格

plsql - 如何使用循环向 VARRAY 添加值

oracle - 如何在 Oracle PLSQL 和 SQL 中执行字符串插值。给定一个带有命名占位符的文本模板,用变量替换它们

oracle - 通过 ADODB 将数据从 Oracle 加载到 Excel - 性能问题

c# - 是否可以从故障点继续运行代码?

oracle - Oracle运算符<>在varchar2中不起作用

oracle11g - 没有为此绑定(bind)变量指定的绑定(bind)类型的 PL/SQL 转换

oracle - 无法通过使用 DG4MSQL 创建的数据库链接查询 SQL Server 系统表