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] >