Oracle Bug ORA-04043
有人測試了在Win下Oracle 11.0.2.0下測試出Oracle bug ORA-04043,隨後在自己機子上進行了測試,測試過程如下:
SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1336232 bytes
Variable Size 146803800 bytes
Database Buffers 159383552 bytes
Redo Buffers 6336512 bytes
Database mounted.
SQL> desc dba_users;
ERROR:
ORA-04043: object dba_users does not exist
SQL> alter database open;
Database altered.
SQL> desc dba_users;
ERROR:
ORA-04043: object dba_users does not exist
SQL> alter system flush shared_pool;
System altered.
SQL> desc dba_users;
Name Null? Type
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
PASSWORD_VERSIONS VARCHAR2(8)
EDITIONS_ENABLED VARCHAR2(1)
AUTHENTICATION_TYPE VARCHAR2(8)
有哥們在MOS上查了一下,果然是bug, ID為2365821。
Abstract: ORA-4043 ON DBA_* TABLES IF THEY ARE DESCRIBED IN A MOUNT STAGE.
在mount階段desc時,open後查詢還是會出現ora-04043,必須重啟一次或者flush shared pool一次才會成功。