create or replace function get_trace_name return varchar2 as
v_result varchar2(300);
begin
SELECT
d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_name
INTO v_result
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;
return v_result;
end get_trace_name;
上面是我用的获得跟踪文件名的函数
当时参考的是“如何获得跟踪文件的名字”