今天遇到一個問題,記錄一下
問題:
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之間