U should use ONLY x$ tables for this query,
because if instance not in OPEN mode and oracle can't read from SYSTEM tablespace yet.
Oracle can't use v$fixed_view_definition for works with v$instance fixed view.
select ks.inst_id,decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN','UNKNOWN'),
decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),
decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,'CHECKPOINT'),
decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),
decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN')
from
x$ksuxsinst ks, x$kvit kv
where kvittag = 'kcbwst';
Thanks Pando.
In this case oracle keep some of definitions of V$ tables as part of software code and view V$FIXED_VIEW_DEFINITION is nothing.
Oracle instance can use another structure of V$ tables, as part of hard code.
oldev:sys> select * from V$DATAFILE_HEADER;
select * from V$DATAFILE_HEADER
*
ERROR at line 1:
ORA-01507: database not mounted
...
oldev:sys> desc V$SQL_CURSOR
Name Null? Type
----------------------------------------- -------- ----------------------------
CURNO NUMBER
FLAG NUMBER
STATUS VARCHAR2(9)
PARENT_HANDLE RAW(4)
PARENT_LOCK RAW(4)
CHILD_LOCK RAW(4)
CHILD_PIN RAW(4)
PERS_HEAP_MEM NUMBER
WORK_HEAP_MEM NUMBER
BIND_VARS NUMBER
DEFINE_VARS NUMBER
BIND_MEM_LOC VARCHAR2(64)
INST_FLAG VARCHAR2(64)
INST_FLAG2 VARCHAR2(64)
--------------------------------------------
NOTE : V$FIXED_VIEW_DEFINITION - part of hard code too....
Bookmarks