test_trace

SQL> create or replace procedure test_TRACE is

  2  sql_TEXT VARCHAR2(4000);

  3  cursor cursor_trace IS select u_dump.value || '/' || db_name.value || '_ora_' || v$process.spid ||

  4         nvl2(v$process.traceid, '_' || v$process.traceid, null) || '.trc' "Trace File"

  5    from v$parameter u_dump

  6   cross join v$parameter db_name

  7   cross join v$process

  8    join v$session

  9      on v$process.addr = v$session.paddr

 10   where u_dump.name = 'user_dump_dest'

 11     and db_name.name = 'db_name'

 12     and v$session.audsid = sys_context('userenv', 'sessionid');

 13  begin

 14  open cursor_trace;

 15  loop

 16    fetch cursor_trace into sql_TEXT;

 17    exit when cursor_trace%notfound;

 18    dbms_output.put_line(sql_TEXT);

 19   end loop;

 20  end test_TRACe;

 21  /

 

Procedure created.

 

SQL> exec test_TRACE;

 

PL/SQL procedure successfully completed.

 

SQL> set serveroutput on

SQL> /

 

Procedure created.

 

SQL> exec test_TRACE;

/u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_3255.trc

/u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_2838.trc

 

PL/SQL procedure successfully completed. 

创建时间:2022-03-30 21:09
浏览量:0