ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle隐含参数的查询

Oracle隐含参数的查询

原创 Linux操作系统 作者:oracle_ace 时间:2007-12-19 13:28:28 0 删除 编辑

我们都知道一般我们都可以通过查询v$parameter视图或者show parameter的命令来获得Oracle数据库参数的值,而且x$ksppcv和x$ksppi这两个内部视图是我们v$parameter视图的源表:

SQL> select view_definition from v$fixed_view_definition where view_name='V$PARAMETER';

VIEW_DEFINITION
--------------------------------------------------------------------------------
select  NUM , NAME , TYPE , VALUE , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIA
BLE , ISMODIFIED , ISADJUSTED , DESCRIPTION, UPDATE_COMMENT from GV$PARAMETER wh
ere inst_id = USERENV('Instance')


SQL> select view_definition from v$fixed_view_definition where view_name='GV$PARAMETER';

VIEW_DEFINITION
--------------------------------------------------------------------------------
select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,  decode(bitand(kspp
iflg/256,1),1,'TRUE','FALSE'),  decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,
'DEFERRED',                                  3,'IMMEDIATE','FALSE'),  decode(bit
and(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),  decode(bitand(ksppstvf,2)
,2,'TRUE','FALSE'),  ksppdesc, ksppstcmnt  from x$ksppi x, x$ksppcv y where (x.i
ndx = y.indx) and  ((translate(ksppinm,'_','#') not like '#%') or (ksppstdf = 'F
ALSE'))

有些_开头的隐含参数被隐去了,我们可以通过如下脚本来查询我们的隐含参数

set linesize 100
set pagesize 9999
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, ' _', ' ');

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12361284/viewspace-873/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-10

  • 博文量
    284
  • 访问量
    844781