Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法删除oracle中的用户_Oracle_Oracle10g - Fatal编程技术网

无法删除oracle中的用户

无法删除oracle中的用户,oracle,oracle10g,Oracle,Oracle10g,我正在尝试使用我的应用程序在Oracle10g中删除一个表空间 关于我的应用程序——在我的应用程序中,我可以创建表空间 在oracle中,当您创建一个表空间时,会自动创建一个新用户并将其附加到数据库 当您必须删除一个表空间时,您必须做的是,首先删除连接到数据库的用户,然后删除数据库 当我试图删除与表空间关联的用户时。 数据库抛出异常,即System.Data.OracleClient.OracleException 异常的详细信息如下-ORA-01904(无法删除当前连接的用户) 问题是我已经关

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

关于我的应用程序——在我的应用程序中,我可以创建表空间

在oracle中,当您创建一个表空间时,会自动创建一个新用户并将其附加到数据库

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

当我试图删除与表空间关联的用户时。 数据库抛出异常,即System.Data.OracleClient.OracleException

异常的详细信息如下-ORA-01904(无法删除当前连接的用户)

问题是我已经关闭了所有的连接,对此我很确定

但oracle仍在抛出此异常

有什么建议吗


它仍然无法删除该用户并抛出异常。

您可能关闭了应用程序,但没有结束该用户的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#';
如果在此列表中找到您的用户,请终止其所有会话:

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#';

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

ORA-01940:无法删除当前登录的用户

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

操作:确保用户已注销,然后重新执行该命令

希望下面的链接可以帮助你-


我们做以下工作:

ALTER TABLESPACE "OUR_INDEX" OFFLINE NORMAL;
DROP TABLESPACE "OUR_INDEX" INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

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

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


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

当您创建表空间时,不会自动创建用户

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

通常,我不会删除用户,而是删除用户的对象。然后锁定帐户,使他们无法再次登录。然后撤销他们拥有的任何特权


如果需要,您可以在大约一个月后删除“未使用”的用户。

。。现在oracle中发生的事情是,当您创建一个表空间时,会自动创建一个新用户并将其连接到数据库。。。这是正确的吗?那个用户是什么?