有時候,因為伺服器的許可權原因,或者因為異構作業系統等因素,我們無法及時擷取Trace檔案,下面這種方法通過SQL查詢讀出Trace檔案的內容。
1。先查出Trace檔案的名稱及目錄;
2。建立目錄對象;
3。建立外部表格;
4。查詢外部表格;代碼
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
create directory tracefile as 'G:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\UDUMP';
create table tracefile
(TEXT varchar2(4000))
organization external (
type oracle_loader
default directory tracefile
access parameters (
records delimited by newline
nobadfile
nodiscardfile
nologfile
)
location('orcl_ora_4800.trc')
) reject limit Unlimited;
select * from tracefile;