Oracle Logon-Trigger

Hallo,

ich baue an einem Logontrigger, der später mal eine bestimmte Session tracen soll.
Im ersten Schritt versuche ich den Parameter tracefile_identifier umzuschießen.
Wenn ich den PL/SQL-Block separat abschicke, dann schießt der mir den Parameter auch entsprechend meiner if-Klausel um, aber als Trigger passiert einfach nichts.

Hier mein Arbeitsmodell:

create or replace trigger trace_ident_tr
after logon on database
declare
program_v varchar2(20);
user_v varchar2(20);
trace_id_v varchar2(100);
begin

SELECT SYS_CONTEXT(‚USERENV‘, ‚MODULE‘) into program_v from dual;
select sys_context(‚USERENV‘, ‚CURRENT_SCHEMA‘) into user_v from dual;

if upper(program_v) = ‚SQL*PLUS‘ and user_v = ‚ENT_USR‘ then

dbms_output.put_line(‚user=ENT_USR und Program = sqlplus‘);

select sys_context(‚USERENV‘, ‚OS_USER‘)||’_’||sys_context(‚USERENV‘, ‚CURRENT_SCHEMA‘) into trace_id_v from dual;

execute immediate ‚alter session set tracefile_identifier=‘||chr(39)||’’||trace_id_v||’’||chr(39);
dbms_output.put_line(‚alter session set tracefile_identifier=‘||chr(39)||’’||trace_id_v||’’||chr(39));

else
dbms_output.put_line(‚Programm nicht sqlplus, oder User nicht ENT_USR‘);

select sys_context(‚USERENV‘, ‚MODULE‘)||’_’||sys_context(‚USERENV‘, ‚CURRENT_SCHEMA‘) into trace_id_v from dual;

execute immediate ‚alter session set tracefile_identifier=‘||chr(39)||’’||trace_id_v||’’||chr(39);

dbms_output.put_line(‚alter session set tracefile_identifier=‘||chr(39)||’’||trace_id_v||’’||chr(39));

end if;
end;
/

Wo liegt mein Fehler ?

Danke und Grüße

Chris