oracle如何删除用户?
Posted
技术标签:
【中文标题】oracle如何删除用户?【英文标题】:How to delete a user in oracle? 【发布时间】:2018-12-07 15:00:49 【问题描述】:我的问题是关于删除 Oracle 中的用户。我收到一个错误,请尝试使用 Oracle sqlplus 和开发人员。
oracle sql 开发者:
connection in the Oracle SQL developer
Drop user HOLA CASCADE;
错误: 错误从命令的第 13 行开始: 删除用户 HELLO CASCADE 错误报告 - ORA-00604: 递归级别 1 SQL 发生错误 ORA-00942: 表或视图不存在 00604. 00000 - “错误发生在递归 SQL 级别 %s” * 原因:处理递归 SQL 语句时出错 (适用于内部字典表的语句)。 * 动作:如果堆栈中描述的情况如下错误 它可以被纠正,做它;否则,请联系 Oracle 支持。
sqlplus:
Enter user-name: sys as sysdba
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> Drop user "HOLA" CASCADE;
Drop user "HOLA" CASCADE
*
ERROR at line 1:
the user 'HOLA' does not exist
consult in the oracle to verify the user
【问题讨论】:
该用户的真实姓名是什么?您正在显示 HOLA nad HELLO,使用大写,大写包含在双引号中......如果您发布了真正发生的事情,这将有所帮助。不知何故,我怀疑甲骨文将 HOLA 翻译成 HELLO。 用户是“HOLA”,用于测试。 Hola 是西班牙语的“你好”,不是吗?我认为那里正在进行一些翻译。您确定用户实际上仍然存在吗?你能查询 users 系统表并告诉我们你实际上有这样一个用户吗?Select * from USER_USERS where username = 'HOLA';
如果你消除了级联;您是否收到指示由于存在依赖对象而无法删除用户的错误?
select * from all_users where username = 'HOLA';
【参考方案1】:
ORA-600 type error
是 Oracle 程序异常的通用内部错误号。表示一个进程遇到了 一种低级的意外情况。
你发出的命令正常没有问题。我怀疑您无法访问的DDL trigger
,很可能位于system
或sys
用户中。也许至少有一个before ddl on database
或before drop on database
类型的触发器。如果它不是生产数据库,或者如果您的数据库的日常操作和任务没有问题,那么您的DB Admin
可能会禁用这些触发器。
【讨论】:
以上是关于oracle如何删除用户?的主要内容,如果未能解决你的问题,请参考以下文章