Criei o trigger abaixo da mesma forma no esquema SYS em dois servidores Oracle 11g diferentes, sem nenhum erro.
CREATE OR REPLACE TRIGGER LOGON_TRG
AFTER LOGON ON DATABASE
BEGIN
if (user in ('mytestro', 'mytestrw')) then
EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA = mytest';
end if;
exception
when others
then null; -- prevent a login failure due to an exception
END logon_trg;
/
Em um servidor, posso dizer que está funcionando, pois posso selecionar qualquer mesa no mytest assim que fizer logon com qualquer conta. No outro servidor diz que a tabela não existe (ORA-00942). Se eu emitir ALTER SESSION SET CURRENT_SCHEMA = mytest;
manualmente posso acessar a tabela, então parece que o gatilho não está disparando.