--1、删除用户时出错,报ORA-00604和ORA-04043错误。
SQL> drop user t_czjb cascade;
drop user t_czjb cascade
ORA-00604: error occurred at recursive SQL level 1
ORA-04043: object SYS_YOID0000254895$ does not exist
--2、分析原因,可能是在删除这个对象时SYS_YOID0000254895$,不存在引起的。
--3、这个object是个什么呢?后台跟踪一下sql看看。
SQL> alter session set sql_trace=true;
Session altered
SQL> drop user t_czjb cascade;
drop user t_czjb cascade
ORA-00604: error occurred at recursive SQL level 1
ORA-04043: object SYS_YOID0000254893$ does not exist
SQL> alter session set sql_trace=false;
--4、oracle安装机器
/u01/oracle/admin/orcl/udump
[root@sbyf-h3-db udump]# ls
orcl_ora_12097.trc
[root@sbyf-h3-db udump]#
--5、用tkporf工具格式化
E:\>tkprof orcl_ora_12097.trc aaa.txt
TKPROF: Release 11.2.0.1.0 - Development on 星期一 10月 15 10:11:39 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
--6、搜索SYS_YOID0000254893$这个对象
********************************************************************************
SQL ID:
Plan Hash: 3992211768
drop type "T_CZJB"."SYS_YOID0000254893$" FORCE
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 0 0
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
********************************************************************************
--7、原来是个type,随便建一个同名的type。
SQL> CREATE OR REPLACE TYPE SYS_YOID0000254895$ AS OBJECT
2 (
3 id INTEGER,
4 rq DATE,
5 mc VARCHAR2(60)
6 )
7 ;
8 /
Type created
--8、重新删除user,成功。
SQL> drop user t_czjb cascade;
User dropped
SQL>