- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 11 anos, 9 meses atrás por
rman.
-
AutorPosts
-
10 de junho de 2014 às 10:47 pm #106689
roberto
ParticipanteBoa tarde,
estou gerando uma trigger para para deixar como default em duas sessoes o case sensitive em consultas sql, mas quando o usuario loga, não surti efeito, já concedi os grants de create any trigger, create any type, create operador, administer database trigger.
Veja o script que criei:CREATE OR REPLACE TRIGGER myschema.after_logon
AFTER LOGON ON DATABASE WHEN (USER = ‘myschema’)
BEGIN
EXECUTE IMMEDIATE ‘ALTER SESSION SET NLS_COMP=LINGUISTIC’;
EXECUTE IMMEDIATE ‘ALTER SESSION SET NLS_SORT=BINARY_CI’;
END;
/
=================================================================================================
create or replace TRIGGER myschema.trg_after_logon
AFTER LOGON ON myschema.SCHEMA
BEGIN
EXECUTE IMMEDIATE ‘ALTER SESSION SET NLS_COMP=LINGUISTIC’;
EXECUTE IMMEDIATE ‘ALTER SESSION SET NLS_SORT=BINARY_CI’;
END;10 de junho de 2014 às 10:53 pm #106690Fábio Prado
Participante@roberto,
Atribua p/ o usuário a role RESOURCE e veja se funciona. Se não funcionar, poste aqui a mensagem de erro, ok? Se não estiver ocorrendo erro, force um erro dentro da trigger acrescentando o código abaixo para vc pelo menos ter certeza de que ela está sendo disparada no logon do usuário desejado:
RAISE_APPLICATION_ERROR(-20001, 'Erro forçado ao disparar a trigger de logon');
[]s
10 de junho de 2014 às 10:57 pm #106691rman
Participante@roberto
Tente da seguinte forma, crie a TRIGGER com o usuário que você quer aplicar a nova configuração.
CREATE OR REPLACE TRIGGER "LOGON"
AFTER
LOGON
ON SCHEMA
BEGIN
-- my source
END;
Só um detalhe, isso é bem perigoso caso já existe um sistema em produção. Se o sistema está nascendo agora, isso deve ser bem documentado. Ninguém espera o case sensitive como padrão.
10 de junho de 2014 às 11:39 pm #106692roberto
ParticipantePedi para o desenvolvedor fazer os testes e continua do mesmo jeito. Não teve ação.
Executei a Trigger Oracle Developer e apareceu a seguinte mensagem:
Empty package TRG_AFTER_LOGON_ definition (no public members).
10 de junho de 2014 às 11:42 pm #106693roberto
ParticipanteJá fiz essa tentativa e não surtiu efeito
11 de junho de 2014 às 3:29 pm #106694rman
Participante@roberto
Acabei de testar aqui, lembrando que a TRIGGER é disparada depois do LOGON. Para testar é necessário desconectar e logar novamente.
CREATE OR REPLACE TRIGGER "LOGON"
AFTER
LOGON
ON SCHEMA
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_COMP=LINGUISTIC';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_SORT=BINARY_CI';
END;
-
AutorPosts
- Você deve fazer login para responder a este tópico.