转载:http://hi.baidu.com/mybaidu/blog/item/777c8acbd2ae7ef653664f43.html
Oracle变态错误:
问题描述:
在使用sys用户执行删除infa用户下表时,报如下错误:
ORA-00604: 递归 SQL 级别 2 出现错误
ORA-00942: 表或视图不存在
查看E:\CO.Software\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_ora_4468.trc
在里面会找到如下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
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_ora_3920.trc
在里面会找到如下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$表也不存在。
问题解决:
同样使用exp和imp方式将association$表导入到本机sys用户中,
此时再次执行删除infa用户下表,成功!!!!!!!
免去了我重装Oracle的工作量。
不过还不知道为什么我的Oracle sys用户下会莫名其妙缺少了两张系统表。
分享到:
相关推荐
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
ORA-01036:非法的变量名/编号 oracle特有的错误
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
Drop goldengate用户时,报ORA-00604 ORA-20782 ORA-06512错误
ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...
Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...
oracle报错ora-12541:TNS无监听程序
oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。
ORA-00312: online log 1 thread 1: '/oradata/10g/db/instant/redo01.log' SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4294967296 SCOPE=BOTH; System altered. SQL> shutdown immediate ORA-...
1.Navicat OCI引⽤位置可以从Navicat菜单栏“⼯具”-》“选项”-》环境-》“OCI”中找到 2.Navicat替换的⽂件
kettle连接oracle12C--报错ORA-28040 没有匹配的验证协议
有关表死锁的详细图片 博文链接:https://meteor-1988.iteye.com/blog/1568695
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
关于oracle做恢复操作时启动数据库报错,通常是由于rman做了恢复操作导致的报错. 通过继续执行恢复指令而恢复数据库,成功启动数据库.