獲取Oracle隱含引數資訊

wuweilong發表於2014-11-04

        Oracle資料庫的初始化引數,主要來源於兩個Oracle內部資料字典表:X$KSPPCV和X$KSPPI通常我們查詢的V$Parameter檢視或使用show parameter命令都是就來源於這兩個系統表的,但透過這兩種方式不能查詢隱含引數.

        X$KSPPCV用以記錄當前的設定的值,及是否使用了預設值等資訊,X$KSPPI則是一個基礎表,用於記錄引數名、引數說明等簡單的資訊。需要注意的是INST_ID欄位,在Rac環境中用以確定引數所屬的例項。

    可以使用如下指令碼,查詢當前例項的隱含引數:

  1. select
  2.   x.ksppinm name,
  3.   y.ksppstvl value,
  4.   y.ksppstdf isdefault,
  5.   decode(bitand(y.ksppstvf,7),1,\'MODIFIED\',4,\'SYSTEM_MOD\',\'FALSE\') ismod,
  6.   decode(bitand(y.ksppstvf,2),2,\'TRUE\',\'FALSE\') isadj
  7. from
  8.   sys.x$ksppi x,
  9.   sys.x$ksppcv y
  10. where
  11.   x.inst_id = userenv(\'Instance\') and
  12.   y.inst_id = userenv(\'Instance\') and
  13.   x.indx = y.indx and
  14.   x.ksppinm like \'%_&par%\'
  15. order by
  16.   translate(x.ksppinm, \' _\', \' \')
  17. /

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

相關文章