尽管dba_users视图中存在用户,但为什么不能删除用户

时间:2016-07-18 17:52:52

标签: oracle exists

我尝试像这样删除/更改用户

drop user AVASILIEV_AXIOM_10X

我收到以下错误

SQL> drop user AVASILIEV_AXIOM_10X;
drop user AVASILIEV_AXIOM_10X
          *
ERROR at line 1:
ORA-01918: user 'AVASILIEV_AXIOM_10X' does not exist

但是这个用户存在于dba_users视图中:

SQL> select username from dba_users where username='AVASILIEV_AXIOM_10X';

USERNAME
------------------------------
AVASILIEV_AXIOM_10X

SQL>

此外,我无法创建具有相同名称的用户,因为它已存在于数据库中。问题是什么?

我的Oracle版本: Oracle Database 11g企业版11.2.0.4.0版 - 64位生产 PL / SQL版本11.2.0.4.0 - 生产 "核心11.2.0.4.0生产" 适用于Linux的TNS:版本11.2.0.4.0 - 生产 NLSRTL版本11.2.0.4.0 - 生产

2 个答案:

答案 0 :(得分:1)

这是旧帖子,但供参考Oracle Doc ID 1297361.1建议如下:

SQL> drop user ahong3;

删除用户ahong3    * 第1行的错误:

ORA-01918: user 'AHONG3' does not exist

SQL> select username from dba_users where username='ahong3';

USERNAME
------------------------------
ahong3

SQL> execute hcheck.full
HCheck Version 8i-11/1.95

Found 0 potential problems and 0 warnings

PL/SQL程序已成功完成。

<强>原因 用户是以小写形式强制创建的。 Drop用户认为用户是大写的,因此无法找到它。

Ex:以下语句将强制以小写形式创建用户。

SQL> Create user "ahong3"; 

<强>解 通过在双引号中指定用户名,强制drop user statement删除以小写形式创建的用户:

SQL> Drop user "ahong3";

此解决方案适合我

答案 1 :(得分:-1)

DROP USER user CASCADE; 

希望这项工作能够为我所做的工作