SQL> drop user aaa ;

 

drop user aaa

 

ORA-00604: 递归 SQL 级别 1 出现错误

ORA-06575: 程序包或函数 NO_VM_DROP_PROC 处于无效状态

ORA-06512: 在 line 21

 

SQL> alter procedure WMSYS.NO_VM_DROP_PROC disable;

 

alter procedure WMSYS.NO_VM_DROP_PROC disable

 

ORA-00922: 选项缺失或无效

 

SQL> alter procedure WMSYS.NO_VM_DROP_PROC DISABLE;

 

alter procedure WMSYS.NO_VM_DROP_PROC DISABLE

 

ORA-00922: 选项缺失或无效

 

SQL> ALTER TRIGGER wmsys.NO_VM_DDL DISABLE;

 

Trigger altered

 

SQL> ALTER TRIGGER wmsys.NO_VM_DROP_A DISABLE;

 

ALTER TRIGGER wmsys.NO_VM_DROP_A DISABLE

 

ORA-04080: 触发器 'NO_VM_DROP_A' 不存在

 

SQL> drop user aaa ;

 

User dropped

 

SQL> purge recyclebin;

 

Done

SQL>

metlink引用文档

ORA-06576 error during Drop User (文档 ID 1498610.1)

In this Document

  Symptoms
  Cause
  Solution
  References

APPLIES TO:

Oracle Server - Enterprise Edition - Version 10.2.0.1 and later

Information in this document applies to any platform.

SYMPTOMS

Dropping a user schema results in below errors:

SQL> drop user GG_ADMIN;

DROP USER "GG_ADMIN"
Error at line 2
ORA-00604: error occurred at recursive SQL level 1
ORA-06576: not a valid function or procedure name
ORA-06512: at line 21 gg_admin cascade;

CAUSE

A DDL trigger is defined on the drop statement.

Next query will get you the definition of the DDL Triggers in the system.

SQL> connect / as sysdba

SQL> SELECT a.obj#, a.sys_evts, b.name FROM trigger$ a,obj$ b WHERE a.sys_evts > 0 AND a.obj#=b.obj# AND baseobject = 0;

  OBJ#       SYS_EVTS NAME
---------- ---------- ------------------------------
  81794             8 LOGON_DATE
  81795          8416 NO_VM_DDL
  81796           128 NO_VM_DROP_A
  13177          8192 AW_REN_TRG
  13179           128 AW_DROP_TRG
  11990        524256 LOGMNRGGC_TRIGGER
  13175          4096 AW_TRUNC_TRG
  71787             1 MGMT_STARTUP

Get an errorstack for ORA-06576 error:

SQL> alter system set events='6576 trace name errorstack level 3';
SQL> drop user <username>

When executing 'drop user gg_admin', the resultant trace file shows the failing statement is a call to wmsys.no_vm_drop_proc('USER', 'GG_ADMIN', '').



From errorstack trace file we could observe the following:

 if (s_event='CREATE') then
   execute immediate 'call wmsys.no_vm_create_proc(''' || sys.dictionary_obj_type || ''', ''' ||
sys.dictionary_obj_name || ''', ''' || sys.dictionary_obj_owner || ''')' ;
 elsif (s_event='DROP') then
   execute immediate 'call wmsys.no_vm_drop_proc(''' || sys.dictionary_obj_type || ''', ''' ||
sys.dictionary_obj_name || ''', ''' || sys.dictionary_obj_owner || ''')' ;

The triggers enabled for this were in this case NO_VM_DDL and NO_VM_DROP_A

SOLUTION

Check if there are any DROP BEFORE triggers enabled. Once you drop the trigger, it will allow you to drop the user.

Workaround would be:

SQL> ALTER TRIGGER NO_VM_DDL DISABLE;
SQL> ALTER TRIGGER NO_VM_DROP_A DISABLE;
SQL> drop user gg_admin;

REFERENCES

NOTE:75206.1 - OERR: ORA-6576 not a function or procedure

ORA-06575: 程序包或函数 NO_VM_DROP_PROC 处于无效状态的更多相关文章

  1. ORA-06575:程序包或函数处于无效状态

    今天一个朋友问我下面这段sql语句的问题,我发现了他竟然把程序员的编程思想带入了oracle,虽然是错误的,但也是很经典的错误啊. create or replace package p_view_p ...

  2. R--基本统计分析方法(包及函数)

    摘要:目前经典的统计学分析方法主要有回归分析,Logistic回归,决策树,支持向量机,聚类分析,关联分析,主成分分析,对应分析,因子分析等,那么对于这些经典的分析方法在R中的使用主要有那些程序包及函 ...

  3. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

  4. ORA-04044: 此处不允许过程, 函数, 程序包或类型和

    用Orale代码建表时,出现 SQL> comment on column SCORE.cno 2 is '学号(外键)';comment on column SCORE.cno is '学号( ...

  5. Oracle编程入门经典 第11章 过程、函数和程序包

    目录 11.1          优势和利益... 1 11.2          过程... 1 11.2.1       语法... 2 11.2.2       建立或者替换... 2 11.2 ...

  6. Oracle学习笔记十四 内置程序包

    扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...

  7. 设置R启动时自动加载常用的包或函数

    在我前面的文章(http://www.cnblogs.com/homewch/p/5749850.html)中有提到R可以自定义启动环境,需要修改R安装文件中的ect文件夹下的配置文件Rprofile ...

  8. 如何在windows中编写R程序包(转载)

    网上有不少R包的编译过程介绍,挑选了一篇比较详细的,做了稍许修改后转载至此,与大家分享 如何在windows中编写R程序包 created by helixcn modified by binaryf ...

  9. Oracle基础<4>--程序包

    一:程序包定义(包括1.程序包规范 2.程序包主体) 程序包是一种数据库对象,它是对相关pl/sql 类型.子程序.游标.异常.变量和常量的封装. 1.程序包规范:可以声明类型.变量.常量.异常.游标 ...

随机推荐

  1. C# 蚁群优化算法实现

    C# 蚁群优化算法实现 需求为(自己编的,非实际项目): 某配送中心进行揽货,目标客户数为50个客户,配送中心目前的运力资源如下: 现有车辆5台 单台运力最大行驶距离200千米 单台运力最大载重公斤1 ...

  2. kotlin官方文档-1.0入门

    什么是Kotlin?   图片发自简书App Kotlin是JetBrains开发的基于JVM的语言,JetBrains想必大家应该很熟悉了,他们创造了很多强大的IDE,android studio谷 ...

  3. PostgreSQL Replication之第九章 与pgpool一起工作(5)

    9.5 检查复制 如果所有的节点都处于开机并运行的状态.我们就可以在集群上运行我们的第一个操作了.在我们的例子中,我们将简单地连接到pgpool并创建一个新的数据库.createdb 是一个命令行工具 ...

  4. PostgreSQL源代码中插件的使用

    如果编译数据库时使用了gmake world和gmake install-world, 所有的插件都会被安装, 那么就不需要再次安装了. 插件目录 contrib 进入要安装的插件目录, 例如 cd ...

  5. UVa 202 Repeating Decimals【模拟】

    题意:输入整数a和b,输出a/b的循环小数以及循环节的长度 学习的这一篇 http://blog.csdn.net/mobius_strip/article/details/39870555 因为n% ...

  6. 添加本地 yum源

    添加本地 yum源 yum-updatesd.conf yum的主配置文件   [root@zhou ~]# cd /etc/yum.repos.d/ [root@zhou yum.repos.d]# ...

  7. 发送消息vs函数调用

    消息发送:对象处理消息: 消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用. objc_msgSend(void /* id self, SEL op ...

  8. mac终端(terminal)里的快捷键

    Command + K 清屏 Command + T 新建标签 Command +W 关闭当前标签页 Command + S 保存终端输出 Command + D 垂直分隔当前标签页 Command ...

  9. [洛谷P2245]星际导航

    题目大意:有一张n点m边的带权无向图,和一些问题,每次询问两个点之间的路径的最大边权最小是多少. 解题思路:同NOIP2013货车运输,只是数据增大,大变成小,小变成大了而已.所以具体思路见货车运输. ...

  10. Looger级别

    Logger级别 日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level).日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容 ...