Me intrometendo um pouco ai, muito cuidado com o cursor_sharing=force. Já parei 
um banco de produção por causa desse parametro. Ele começou a fazer blocking 
locks e no final tinha mais de 1000 sessões presas. Portanto aconselho a fazer 
primeiro em desenvolvimento e testar.

Att,

Nelson Cartaxo


----- Mensagem original ----
De: Vinicius Amorim <[EMAIL PROTECTED]>
Para: [email protected]
Enviadas: Segunda-feira, 21 de Maio de 2007 11:37:07
Assunto: Re: [oracle_br] ORA-00604: error occurred at recursive SQL level 2

Poxa... muito obrigado, o problema eu ja tinha resolvido com o aumento da
shared pool.

mas da proxima vez, vou tentar sim executar esse procedimento, acredito que
ira resolver!!!

Em 18/05/07, Vitor Hugo Campos <vitor.campos@ astem.srv. br> escreveu:
>
> Vinicius, a última linha da mensagem já está dando a dica: ele não
> conseguiu alocar 4200 bytes na shared pool.
>
> O que pode ter acontecido é que a shared pool esteja toda ocupada com
> cursores SQL abertos e faltou memória para colocar mais um objeto.
> Normalmente isso acontece porque o sistema está gerando SQL's sem
> variáveis de bind (ex: SELECT * FROM CLIENTES WHERE CODCLIENTE = 1, em
> vez de SELECT * FROM CLIENTES WHERE CODCLIENTE = :CODCLIENTE) . Dá uma
> olhada em V$SQL, se houver muitos SQL's com valores literais em vez de
> variáveis de bind, você pode fazer o seguinte:
>
> 1) ALTER SYSTEM SET CURSOR_SHARING= FORCE
> O comando acima vai fazer com que o banco pegue o SQL que a aplicação
> mandou e trocar todos os literais por variáveis de bind. Isso deve ser
> uma solução temporária, porque o banco gasta um pouco mais de CPU
> fazendo essas conversões e, francamente, quem deveria criar as variáveis
> de bind deveria ser a própria aplicação.
>
> 2) Solicitar a correção da aplicação para usar variáveis de BIND em vez
> de literais (e dar uns cascudos nos programadores para eles nunca mais
> fazerem isso)... :P
>
> Se mesmo assim o erro continuar aparecendo, aumente o valor da shared
> pool.
>
> Vinicius Amorim escreveu:
> >
> > Estou com esse problema, alguem pode ajudar...
> >
> > O banco esta sendo populando por uma aplicacao, nao tem mais nada alem
> do
> > oracle e da aplicacao rodando.
> >
> > Quando chega em um determinado ponto, temos esse erro na log do banco.
> >
> > Errors in file
> > /opt/ora817/ OraHome/admin/ ora817/bdump/ ora817_snp2_ 21949.trc:
> > ORA-00604: error occurred at recursive SQL level 2
> > ORA-04031: unable to allocate 4200 bytes of shared memory ("shared
> > pool","JOB$" ,"sga heap","state objects")
> >
> > Aguem sabe o q fazer?
> >
> > --
> > Vinícius Amorim Teixeira
> >
> > 9965 90 18
> >
> > Email - [EMAIL PROTECTED] com <vini.rcc%40gmail. com> <mailto:vini
> .rcc%40gmail. com>
> > MSN - vini.amorim@ hotmail.com <vini.amorim% 40hotmail. com> <mailto:vini
> .amorim%40hotmail. com>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
> --
> Vitor Hugo Campos
>
> Desenvolvimento - Informática
> Autoglass - Especialista em Vidro Automotivo
> +55 (27) 2121-5531
> http://www.autoglas s.com.br/
>
> 
>

-- 
Vinícius Amorim Teixeira

9965 90 18

Email - [EMAIL PROTECTED] com
MSN - vini.amorim@ hotmail.com

[As partes desta mensagem que não continham texto foram removidas]




__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]

Responder a