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
Nenhum comentário:
Postar um comentário
Isso te ajudou? Comente...