sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 故障案例 >

【案例】Oracle报错ORA-04043 对象不存在的产生原因和解决办法

时间:2016-07-10 11:34   来源:Oracle研究中心   作者:惜分飞   点击:

天萃荷净 运维DBA反映在执行SQL语句的时候报错ORA-04043: object dba_tables does not exist,分析原因为Oracle BUG导致

1.创建两张模拟表

SQL> select * from v$version;

BANNER
------------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE    9.2.0.3.0       Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production


SQL> create table sys_oracleplus as           
  2  select * from dba_tables;

Table created.

SQL> create table chf.chf_oracleplus as
  2  select * from dba_tables;

Table created.

2.启动数据库到mount状态查询表

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  353441008 bytes
Fixed Size                   451824 bytes
Variable Size             184549376 bytes
Database Buffers          167772160 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> desc dba_tables;
ERROR:
ORA-04043: object dba_tables does not exist


SQL> desc sys_oracleplus
ERROR:
ORA-04043: object sys_oracleplus does not exist


SQL> desc chf.chf_oracleplus
ERROR:
ORA-04043: object chf.chf_oracleplus does not exist

3.打开数据库查询

SQL> alter database open;

Database altered.


SQL> select count(*) from sys_oracleplus;
select count(*) from sys_oracleplus
                     *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> select count(*) from chf.chf_oracleplus;

  COUNT(*)
----------
       868

SQL> select count(*) from dba_tables;
select count(*) from dba_tables
                     *
ERROR at line 1:
ORA-00942: table or view does not exist

4.解决ORA-04043问题

SQL> alter system flush shared_pool;

System altered.


SQL> select count(*) from dba_tables;

  COUNT(*)
----------
       869

SQL> select count(*) from sys_oracleplus;

  COUNT(*)
----------
       867

MOS解释
ORA-4043 On DBA_* Views If They Are Described In Mount Stage [ID 296235.1]

Available workarounds are:
1) Don't describe the dba_* views at mount stage.
OR
2) If you issue DESC of any DBA_*views at mount stage,
    then shutdown and restart the DB instance.
OR
3) Flush the shared pool.
SQL> Alter system flush shared_pool;
and then reissue the failing command. 

在10g中open库后提示也为类此ORA-04043: object dba_tables does not exist


--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【案例】Oracle报错ORA-04043 对象不存在的产生原因和解决办法

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/786.html

Oracle研究中心

关键词:

Oracle报错ORA-04043

ORA-04043对象不存在的产生原因和解决办法