有時不清楚一些參數的所有允許設定的值,可以由以下兩個方法獲得
1.直接輸入錯的值,讓error來提示
複製代碼 代碼如下:SQL> alter system set "_db_block_cache_protect"=what scope=spfile;
alter system set "_db_block_cache_protect"=what scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value WHAT for parameter _db_block_cache_protect, must be
from among TRUE, MEDIUM, LOW, FALSE
由此可知_db_block_cache_protect所有允許的值是TRUE, MEDIUM, LOW, FALSE
缺點是9i及以前的版本不支援這種檢查
2.通過指令碼來獲得
cat a.sql 複製代碼 代碼如下:COL pvalid_default HEAD DEFAULT FOR A7
COL pvalid_value HEAD VALUE FOR A30
COL pvalid_name HEAD PARAMETER FOR A50
COL pvalid_par# HEAD PAR# FOR 99999
BREAK ON pvalid_par# skip 1
PROMPT Display valid values for multioption parameters matching "&1"...
SELECT
-- INST_ID,
PARNO_KSPVLD_VALUES pvalid_par#,
NAME_KSPVLD_VALUES pvalid_name,
ORDINAL_KSPVLD_VALUES ORD,
VALUE_KSPVLD_VALUES pvalid_value,
DECODE(ISDEFAULT_KSPVLD_VALUES, 'FALSE', '', 'DEFAULT' ) pvalid_default
FROM
X$KSPVLD_VALUES
WHERE
LOWER(NAME_KSPVLD_VALUES) LIKE LOWER('%&1%')
ORDER BY
pvalid_par#,
pvalid_default,
ord,
pvalid_Value
用sys使用者執行
SQL> @a block
會將所有與block有關的參數的可能值擷取。