通过跟踪trc文件查找show parameter命令生成的SQL语句。在开发的过程中用show parameter命令用来查看数据库的配置情况,但前台连接数据库只能执行SQL语句,其它的命令不能在代码中执行,由此产生此问题的提出。现将过程记录如下:
1。alter session set events '10046 trace name context forever';
--修改session的会话
2。 exec dbms_system.set_ev(9,437,10046,8,'pecker');
--执行跟踪
3。show parameter
--执行命令
4。 exec dbms_system.set_ev(9,437,10046,0,'pecker');
--结束跟踪
5。select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
p.spid || '.trc' trace_file_name
from (select p.spid
from sys.v$mystat m, sys.v$session s, sys.v$process p
where m.statistic# = 1
and s.sid = m.sid
and p.addr = s.paddr) p,
(select t.instance
from sys.v$thread t, sys.v$parameter v
where v.name = 'thread'
and (v.value = 0 or t.thread# = to_number(v.value))) i,
(select value from sys.v$parameter where name = 'user_dump_dest') d;
--获取跟踪文件
6。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('%%')
ORDER BY NAME_COL_PLUS_SHOW_PARAM, ROWNUM;
--此SQL即是show parameter在后台执行的SQL代码
阅读(778) | 评论(0) | 转发(0) |