刚好今天看到有人在群里问了一个问题,自己刚好有点兴趣。
以下是数据库的测试版本:
点击(此处)折叠或打开
- SYS@proc> select * from v$version where rownum=1;
-
- BANNER
- --------------------------------------------------------------------------------
- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
点击(此处)折叠或打开
- SYS@proc> show parameter control_files
-
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- control_files string /u01/app/oracle/oradata/proc/c
- ontrol01.ctl, /u01/app/oracle/
- oradata/proc/control02.ctl
于是做了下10046:
点击(此处)折叠或打开
- SYS@proc> alter session set events '10046 trace name context forever,level 12';
-
- Session altered.
-
- SYS@proc> show parameter control_files
-
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- control_files string /u01/app/oracle/oradata/proc/c
- ontrol01.ctl, /u01/app/oracle/
- oradata/proc/control02.ctl
- SYS@proc> alter session set events '10046 trace name context off';
-
- Session altered.
-
- SYS@proc> select value from v$diag_info where name like '%De%';
-
- VALUE
- --------------------------------------------------------------
- /u01/app/oracle/diag/rdbms/proc/proc/trace/proc_ora_3282.trc
查看10046产生的trace,可以看到show parameter control_files实际上是执行了下边的sql语句:
点击(此处)折叠或打开
- SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number',6,'big integer', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM
- FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER(:NMBIND_SHOW_OBJ)
- ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM
- END OF STMT
- PARSE #139976962042672:c=0,e=429,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1483720550329399
- BINDS #139976962042672:
- Bind#0
- oacdty=01 mxl=32(30) mxlc=00 mal=00 scl=00 pre=00
- oacflg=20 fl2=1000000 frm=01 csi=852 siz=32 off=0
- kxsbbbfp=7f4eed1966e0 bln=32 avl=15 flg=05
- value="%control_files%"
所以,value列实际上就是 VALUE_COL_PLUS_SHOW_PARAM ,所以对该列col VALUE_COL_PLUS_SHOW_PARAM for a100即可。
点击(此处)折叠或打开
- SYS@proc> show parameter control_files
-
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- control_files string /u01/app/oracle/oradata/proc/c
- ontrol01.ctl, /u01/app/oracle/
- oradata/proc/control02.ctl
- SYS@proc> col VALUE_COL_PLUS_SHOW_PARAM for a100
- SYS@proc> show parameter control_files
-
- NAME TYPE VALUE
- ------------------------------------ ----------- ----------------------------------------------------------------------------------------------------
- control_files string /u01/app/oracle/oradata/proc/control01.ctl, /u01/app/oracle/oradata/proc/control02.ctl
尝试执行该sql语句:
点击(此处)折叠或打开
- SYS@proc> SELECT NAME NAME_COL_PLUS_SHOW_PARAM,
- DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number',6,'big integer', 'unknown') TYPE,
- DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM
- FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER('%control_files%') ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM;
-
- NAME TYPE VALUE
- ------------------------------------ ----------- ----------------------------------------------------------------------------------------------------
- control_files string /u01/app/oracle/oradata/proc/control01.ctl, /u01/app/oracle/oradata/proc/control02.ctl
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30174570/viewspace-2139919/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30174570/viewspace-2139919/