代码之家  ›  专栏  ›  技术社区  ›  Egalitarian

无法删除oracle中的用户

  •  0
  • Egalitarian  · 技术社区  · 15 年前

    我正在尝试使用我的应用程序在oracle10g中删除一个表空间。

    现在在oracle中发生的是,当您创建一个表空间时,一个新用户会自动被创建并附加到数据库。

    当您必须删除一个表空间时,首先删除连接到数据库的用户,然后删除数据库。

    当我尝试删除与表空间关联的用户时。 数据库引发异常,该数据库是System.Data.OracleClient.OracleException异常

    问题是我已经关闭了所有的关系不错当然可以。

    有什么建议吗???

    它仍然不能删除用户并抛出异常。

    5 回复  |  直到 15 年前
        1
  •  2
  •   zendar    15 年前

    您可能关闭了应用程序,但没有结束该用户的Oracle会话。以sysdba身份登录并查询活动会话:

    SQL> select sid, serial#, username from v$session;
    
           SID    SERIAL# USERNAME                      
    ---------- ---------- ------------------------------
           122       2557 SYS                   
           126       7878 SOME_USER                      
    

    SQL> alter system kill session 'sid,serial#';
    
        2
  •  0
  •   Sachin Shanbhag    15 年前

    似乎你的错误代码是ORA-01940而不是ORA-01904-

    原因:试图删除当前登录的用户。

    http://www.dba-oracle.com/t_ora_01940_cannot_drop_user.htm

        3
  •  0
  •   Jayan    15 年前

    我们做跟踪和工作。。

    ALTER TABLESPACE "OUR_INDEX" OFFLINE NORMAL;
    DROP TABLESPACE "OUR_INDEX" INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
    
        4
  •  0
  •   Hendra Jaya    15 年前

    请确保您尝试删除的用户当前未连接。我去年确实遇到过这个问题。我的解决方法是重新启动数据库。一旦数据库启动,我就删除用户。

    我没有尝试过的另一个解决方法是重新启动侦听器。这也(从逻辑上)可以确保在侦听器关闭时“要删除的”用户没有连接。

    这个解决方法(当然)不能在生产数据库中使用。

        5
  •  0
  •   Gary Myers    15 年前

    创建表空间时不会自动创建用户。

    用户确实获得了一个默认表空间。它们可以(也可以不)在该表空间中创建对象。它们也可以(也可以不)在其他表空间中创建对象。