oracle错误:ORA-00604:递归 SQL 级别 2 出现错误
问题描述:
在使⽤sys⽤户执⾏删除infa⽤户下表时,报如下错误:
ORA-00604: 递归 SQL 级别 2 出现错误
ORA-00942: 表或视图不存在
查看..\oracle\product\10.2.0\admin\orcl\bdump\alert_orcl.log发现当时报如下错误:
ORA-00604: error occurred at recursive SQL level 2 ORA-00942: table or view does not exist
同样使⽤sys⽤户在sqlplus模式和PL/SQL模式下作删除infa⽤户和删除infa表空间都会报如上错误。
问题定位:
使⽤sqlplus sys/oracle as sysdba登陆
执⾏alter session set sql_trace=ture;
之后再次执⾏drop user infa cascade;
会报如下错误:
ORA-00604: 递归 SQL 级别 2 出现错误
ORA-00942: 表或视图不存在
再执⾏alter session set sql_trace=false;
这时去E:\CO.Software\oracle\product\10.2.0\admin\orcl\udump路径下查看刚刚时间点⽣成的trace⽂
件:orcl_
在⾥⾯会到如下sql:
PARSE ERROR #1:len=273 dep=2 uid=0 oct=3 lid=0 tim=7580575894 err=942
select position#,sequence#,level#,argument,type#,charsetid,charsetform,
properties,nvl(length, 0), nvl(precision#, 0),nvl(scale, 0),nvl(radix, 0),
type_owner,type_name,type_subname,type_linkname,pls_type
oracle登录命令from argument$
where obj#=:1 and procedure#=:2 order by sequence# des
【如果上⾯执⾏的是drop表⽽不是drop⽤户操作,则相应trace中sql如下:】
【SELECT topology
FROM SDO_TOPO_METADATA_TABLE a, TABLE(a.Topo_Geometry_Layers) b
WHERE b.owner = 'SYS' AND b.table_name = 'OPB_ANALYZE_DEP' END OF STMT】
此时可以猜测sys⽤户下argument$表不存在,使⽤PL/SQL登陆查看发现sys⽤户下确实没有argument$表。
问题解决:从另⼀台oracle正常的机器中使⽤sys⽤户登录,将argument$表exp位dmp⽂件,将此dmp⽂件拿到本机,执⾏如下命令将argument$表导⼊到本机的sys⽤户下:
imp 'sys/oracle@orcl as sysdba'
此时再次执⾏删除infa⽤户下表,⼜报如下错误:
问题描述:
ORA-00604: 递归 SQL 级别 1 出现错误 ORA-38301: ⽆法对回收站中的对象执⾏ DDL/DML
执⾏purge recyclebin和purge table 'table_name'问题也⽆法解决。
问题定位:
同样使⽤使⽤sqlplus sys/oracle as sysdba登陆
执⾏alter session set sql_trace=ture;
之后再次执⾏drop table OPB_ANALYZE_DEP;
会报如下错误:ORA-00604: 递归 SQL 级别 1 出现错误 ORA-38301: ⽆法对回收站中的对象执⾏ DDL/DML
再执⾏alter session set sql_trace=false;
这时去E:\CO.Software\oracle\product\10.2.0\admin\orcl\udump路径下查看刚刚时间点⽣成的trace⽂件orcl_ 在⾥⾯会到如下sql:
PARSE ERROR #9:len=50 dep=1 uid=0 oct=3 lid=0 tim=10735596185 err=942
select count(*) from association$ where obj# = :1
此时可以确定sys⽤户下association$表也不存在。
问题解决:
1. 使⽤exp和imp⽅式将其他机⼦的association$表导⼊到本机sys⽤户中,
2.如果出现ORA-00604: 递归 SQL 级别 1 出现错误
使⽤exp和imp⽅式将其他机⼦的association$表导⼊到本机sys⽤户中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论