【parameter】oracle的隱含引數的檢視

ballontt發表於2013-08-09

資料字典系統表主要由4部分組成:
1.內部RDBMS表:x$……
2.資料字典表:……$
3.動態效能檢視:gv$……,v$……
4.資料字典檢視:user_……,all_……,dba_……
資料庫啟動時,動態建立x$,在X$基礎上建立GV$,在GV$基礎上建立V$    (X$表--&gtGV$(檢視)---&gtV$(檢視))

oracle中檢視v$parameter由x$ksppi和x$ksppcv兩個表連線查詢得到。
隱含引數以"_"開頭,核心部分,用於跟蹤內部資料庫資訊,維持DB的正常執行,是加密命名的,不允許sysdba以外的使用者直接訪問,顯示授權不被允許。最好不要修改,但有些引數因功能強大,而被使用者研究使用。
其可以在x$ksppi和x$ksppcv兩個表中查到。

SYS@PROD> desc x$ksppi
 Name                   Null?    Type
 ---------------------- -------- -----------
 ADDR                            RAW(4)         ----- 記憶體地址
 INDX                            NUMBER         ----- 序號,從0開始
 INST_ID                         NUMBER        	----- 例項編號
 KSPPINM                         VARCHAR2(80)	----- 引數名稱
 KSPPITY                         NUMBER		----- 引數型別。 1:boolean 2:string 3:number 4:file
 KSPPDESC                        VARCHAR2(255)	----- 引數描述
 KSPPIFLG                        NUMBER		----- 引數標誌欄位,說明是isses_modifiable or issys_modifiable
 KSPPILRMFLG                     NUMBER		----- 
 KSPPIHASH                       NUMBER		----- 引數對應的hash值
	
SYS@PROD> desc x$ksppcv
 Name                   Null?   Type
 -------------------- --------  ------------
 ADDR                           RAW(4)		----- 記憶體地址
 INDX                           NUMBER		----- 序號,從0開始
 INST_ID                        NUMBER		----- 例項編號
 KSPPSTVL                       VARCHAR2(512)	----- 引數的值
 KSPPSTDVL                      VARCHAR2(512)	----- 引數的預設值
 KSPPSTDF                       VARCHAR2(9)	----- 是否啟用預設值
 KSPPSTVF                       NUMBER		----- 引數標誌欄位,說明是isses_modifiable or issys_modifiable
 KSPPSTCMNT                     VARCHAR2(255)	----- commen

通過如下查詢,可以友好的顯示出引數的查詢結果:

set lines 130
column name format a30
column value format a25
select
  x.ksppinm  name,
  y.ksppstvl  value,
  y.ksppstdf  isdefault,
  decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE')  ismod,
  decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE')  isadj
from
  sys.x$ksppi x,
  sys.x$ksppcv y
where
  x.inst_id = userenv('Instance') and
  y.inst_id = userenv('Instance') and
  x.indx = y.indx and
  x.ksppinm like '%_&par%'
order by
  translate(x.ksppinm, ' _', ' ')
/

ballontt
2013/8/9
---The End---

如需轉載,請標明出處和連結,謝謝!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27425054/viewspace-768172/,如需轉載,請註明出處,否則將追究法律責任。

相關文章