解决:ora-00604, orac-00942错误

今天测试服务器删除存储过程的时候出现:ORA-00604,ORA-00942错误,如下:
-------------------------------------------------
SQL> drop procedure zgym.sp_test;
drop procedure zgym.sp_test
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level
ORA-00942: table or view does not exist
-------------------------------------------------

经过google这方面的问题很多,有的是删除表出现该错误,有的是删除用户出现该错误,我试着建立一个表,并插入数据,然后删除该表,删除成功。后来及进行跟踪
具体如下:

 SQL> alter session set events '10046 trace name context forever,level 12';
 
Session altered
 
SQL> drop procedure sp_test;
 
drop procedure sp_test
 
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
 
SQL> alter session set events '10046 trace name context off';
 
Session altered
 

然后查看G:\oracle\product\10.1.0\admin\orcl\udump下的 orcl_ora_5608.trc文件,在cmd下用命令:tkprof orcl_ora_5608.trc 导出111.log文件,111.log文件如下:

 ... ...
********************************************************************************

The following statement encountered a error during parse:

delete from argument$ where obj#=:

Error encountered: ORA-00942
********************************************************************************
---


经分析应该是sys下面的 argument$ 表不存在, 
经查询sys该表确实不存在,然后用plsql导出其他数据库中的sys下argument$ 表,然后在问题数据库中创建或者导入,然后删除过程,过程删除成功!

总结:ora-00604错误需要经trace分析才能确定问题所在,然后解决。

附件:

 ------------------------------------------------
-- Export file for user SYS                   --
-- Created by zdyl123 on 2010-08-14, 17:20:02 --
------------------------------------------------

spool argument$.log

prompt

prompt Creating table ARGUMENT$
prompt ========================
prompt

create table SYS.ARGUMENT$
(
  OBJ#          NUMBER not null,
  PROCEDURE$    VARCHAR2(30),
  OVERLOAD#     NUMBER not null,
  PROCEDURE#    NUMBER,
  POSITION#     NUMBER not null,
  SEQUENCE#     NUMBER not null,
  LEVEL#        NUMBER not null,
  ARGUMENT      VARCHAR2(30),
  TYPE#         NUMBER not null,
  CHARSETID     NUMBER,
  CHARSETFORM   NUMBER,
  DEFAULT#      NUMBER,
  IN_OUT        NUMBER,
  PROPERTIES    NUMBER,
  LENGTH        NUMBER,
  PRECISION#    NUMBER,
  SCALE         NUMBER,
  RADIX         NUMBER,
  DEFLENGTH     NUMBER,
  DEFAULT$      LONG,
  TYPE_OWNER    VARCHAR2(30),
  TYPE_NAME     VARCHAR2(30),
  TYPE_SUBNAME  VARCHAR2(30),
  TYPE_LINKNAME VARCHAR2(128),
  PLS_TYPE      VARCHAR2(30)
)
tablespace SYSTEM
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 16K
    minextents 1
    maxextents unlimited
  );
create unique index SYS.I_ARGUMENT1 on SYS.ARGUMENT$ (OBJ#, PROCEDURE$, OVERLOAD#, SEQUENCE#)
  tablespace SYSTEM
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 16K
    minextents 1
    maxextents unlimited
  );
create index SYS.I_ARGUMENT2 on SYS.ARGUMENT$ (OBJ#, PROCEDURE#, SEQUENCE#)
  tablespace SYSTEM
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 16K
    minextents 1
    maxextents unlimited
  );


spool off

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3090/viewspace-670782/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/3090/viewspace-670782/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值