Oracle 資料庫初始化參數主要來源於內部字典表 X$KSPPCV(當前設定值)與 X$KSPPI(參數定義資訊)。常用的 V$PARAMETER 視圖或 SHOW PARAMETER 命令均源於此,但無法查詢隱含參數(以底線 _ 開頭)。本文提供查詢隱含參數的標準腳本並解析欄位含義。
SELECT
x.ksppinm AS name,
y.ksppstvl AS value,
y.ksppstdf AS isdefault,
DECODE(BITAND(y.ksppstvf, 7), 1, 'MODIFIED', 4, 'SYSTEM_MOD', 'FALSE') AS ismod,
DECODE(BITAND(y.ksppstvf, 2), 2, 'TRUE', 'FALSE') AS 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%' ESCAPE '\'
ORDER BY TRANSLATE(x.ksppinm, ' _', ' ');
| 別名 | 來源欄位 | 含義 |
|---|---|---|
| name | ksppinm | 參數名稱(含隱含參數) |
| value | ksppstvl | 當前實際生效值 |
| isdefault | ksppstdf | 是否為預設值 (TRUE/FALSE) |
| ismod | ksppstvf (bitand 7) | 修改狀態:MODIFIED(會話級)、SYSTEM_MOD(系統級)、FALSE(未修改) |
| isadj | ksppstvf (bitand 2) | 是否可動態調整 (TRUE/FALSE) |
&par 替換變數,可輸入關鍵字過濾(如輸入 optimizer 查詢優化器相關隱含參數)TRANSLATE 排序將底線轉為空格,使輸出更易閱讀SYS 或 SELECT_CATALOG_ROLE 權限存取 X$ 表SELECT x.ksppinm, y.ksppstvl, y.ksppstdf FROM sys.x$ksppi x, sys.x$ksppcv y WHERE x.indx = y.indx ORDER BY x.ksppinm;