今天遇到一个问题,记录一下
问题:
SYS@HMX>desc dba_tablespaces;
ERROR:
ORA-04043: object dba_tablespaces does not exist
查询发现数据库处于mount阶段
SYS@HMX>select status from v$instance;
STATUS
------------------------
MOUNTED
打开数据库
SYS@HMX>alter database open;
Database altered.
依旧显示不存在
SYS@HMX>desc dba_data_files;
ERROR:
ORA-04043: object dba_data_files does not exist
查询其他视图存在
SYS@HMX>desc dba_objects;
Name Null? Type
------------------------------------------------------------------------ -------- -------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
原来是在mount阶段不能查询dba_* 视图,一旦在mount阶段查询过某个视图,即使open之后在查询,还是显示不存在的,这时候就只有重启数据库了
这种问题出现在Enterprise Edition - Version: 8.1.7.4 to 10.2.0.3之间