Chinaunix首页 | 论坛 | 博客
  • 博客访问: 133949
  • 博文数量: 35
  • 博客积分: 1002
  • 博客等级: 准尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-03 14:30
文章分类

全部博文(35)

文章存档

2014年(7)

2013年(8)

2011年(4)

2010年(9)

2009年(7)

我的朋友

分类: Oracle

2009-09-27 16:36:25

   通过跟踪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) |
给主人留下些什么吧!~~