jmton 发表于 2018-9-10 11:44:18

oracle 获取当前session的trace文件名

--第1种  
SELECT u_Dump.Value || '/' || Lower(Db_Name.Value) || '_ora_' ||
  
       V$process.Spid ||
  
       Nvl2(V$process.Traceid, '_' || V$process.Traceid, NULL) || '.trc' "Trace File"
  
FROM V$parameter u_Dump
  
CROSS JOIN V$parameter Db_Name
  
CROSS JOIN V$process
  
JOIN V$session
  
    ON V$process.Addr = V$session.Paddr
  
WHERE u_Dump.Name = 'user_dump_dest'
  
   AND Db_Name.Name = 'db_name'
  
   AND V$session.Audsid = Sys_Context('userenv', 'sessionid');
  

  
--第2种
  
SELECT d.Value || '/' || Lower(Rtrim(i.Instance, Chr(0))) || '_ora_' ||
  
       p.Spid || '.trc' AS "trace_file_name"
  
FROM (SELECT p.Spid
  
          FROM V$mystat m, V$session s, V$process p
  
         WHERE m.Statistic# = 1
  
         AND s.Sid = m.Sid
  
         AND p.Addr = s.Paddr) p,
  
       (SELECT t.Instance
  
          FROM V$thread t, V$parameter v
  
         WHERE v.Name = 'thread'
  
         AND (v.Value = 0 OR t.Thread# = To_Number(v.Value))) i,
  
       (SELECT VALUE
  
          FROM V$parameter
  
         WHERE NAME = 'user_dump_dest') d;


页: [1]
查看完整版本: oracle 获取当前session的trace文件名