Pelo que entendi não é isso não, o colega tá reclamando do ORA-00604: ocorreu 
um erro no nível 1 SQL recursivo , e isso ** não ** é causado pelo userenv : na 
verdade, sendo essa a pergunta, em verdade isso ** não é problema Algum ** , o 
client Oracle está programado para listar exceções, cfrme 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:68817379083269
 ... Não tem como tirar o 604 do error stack, MAS a Aplicação dele 
tranquilamente pode ser programada para não exibir o stack de erros todo, o 
sqlplus porém (deve ser isso que ele está usando)  não pode ...

 []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, Marcos Braga <braga.mar...@...> escreveu
>
> Olá Miguel,
> 
> O que observei de diferente na sua trigger foi a utilização do USERENV.
> 
> Ao invés de utilizar:
> USERENV('SESSIONID')
> 
> Tente:
> SYS_CONTEXT('USERENV', 'SESSIONID')
> 
> Verifique se pode ser isso.
> 
> []s
> Braga
> 
> Em 14 de abril de 2010 17:32, Miguel Angelo Rodrigues <
> miguelangelo.rodrig...@...> escreveu:
> 
> >
> >
> > Senhores,
> >
> > estou com uma trigger para controlar o acesso dos usuario no ambiente de
> > produção.
> > Ela está funcionando, porem apresenta o erro de sql recursivo.
> > A versão do oracle é 10.2.0.3.0.
> > Fico grato com a ajuda de vcs.
> > Segue a trigger e o erro:
> >
> > create or replace trigger log_restriction
> > after logon on database
> > begin
> > for x in
> > (
> > select CLIENT_IDENTIFIER, program
> > from sys.v_$session
> > where audsid = sys_context('userenv', 'sessionid')
> > )
> > loop
> > if ltrim(rtrim(x.CLIENT_IDENTIFIER)) not in
> > ('10.11.7.230','10.11.7.216','10.1.1.48','10.1.1.28'
> >
> >
> > ,'10.1.1.15','127.0.0.1','10.1.1.31','200.198.213.112','200.198.202.105','10.1.1.36')
> > or upper(ltrim(rtrim(x.program))) not in (
> > 'AETI.EXE'
> > ,'SIRCX.EXE'
> > ,'EQCASSERVICE.EXE'
> > ,'SRVAQUISICAO.EXE'
> > ,'SRVSOPHIABIB.EXE'
> > ,'SRVBIB.EXE'
> > ,'BIBLI.EXE'
> > ,'MONC.EXE'
> > ,'BIBCONF.EXE')
> > then
> > raise_application_error( -20999, 'USUÁRIO OU APLICAÇÃO NÃO AUTORIZADO
> > PARA USO NO AMBIENTE DE PRODUÇÃO!');
> > end if;
> > end loop;
> > end log_restriction;
> > /
> >
> > ORA-00604: ocorreu um erro no nível 1 SQL recursivo
> > ORA-20999: USUÁRIO OU APLICAÇÃO NÃO AUTORIZADO PARA USO NO AMBIENTE DE
> > PRODUÇÃO!
> >
> > --
> > Miguel Angelo Rodrigues da Silva
> > Administrador de Banco de Dados Oracle
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a