0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

Olá pessoal.

Tive uma necessidade a um tempo atrás de ativar um trace em uma detereminada sessão que viesse de um programa específico.

Coisa simples, então vou deixar documentado aqui para quem precisar a trigger de logon que eu usei.

create or replace trigger sys.LOGON_TRACE
      after logon on database
DECLARE
      v_username VARCHAR2(70);
      v_program  VARCHAR2(70);
BEGIN
      SELECT LOWER(USERNAME),
                      LOWER(PROGRAM)
      INTO  v_username,
                 v_program
      FROM sys.v_$session
      WHERE
                   sid = SYS_CONTEXT(‘USERENV’, ‘SID’);

  — if ora_login_user = ‘MARIO’ then   — Se quiser utilizar a trigger em determinados logins
  IF (v_program = ‘q_sender.exe’ OR v_program=’sqlplusw.exe’)
  THEN
        EXECUTE IMMEDIATE ‘ALTER SESSION SET sql_trace=TRUE’;
        EXECUTE IMMEDIATE ‘alter session set timed_statistics=true’;
        EXECUTE IMMEDIATE ‘alter session set max_dump_file_size=unlimited’;
EXECUTE IMMEDIATE ‘alter session set events=”10046 trace name context forever, level 12”’;
  END IF;
END LOGON_TRACE;

/
Então é isso pessoal, simples e objetivo. 

Abraço
Mario

Leave a Reply

Your email address will not be published. Required fields are marked *