Enriquecendo a resposta do querido amigo Chiappa, vc também terá
que analisar se a dependencia é direta ou indireta. 
Exemplo : Vc cria a procedure A que acessa a tabela XX. Vc cria
a procedure B que chama a procedure A no 1/2 de seu código.

Caso vc altere a estrutura da tabela XX, os 2 procedimentos ficarão
inválidos.
Nesse caso, quando vc executar a procedure A que faz acesso direto 
à tabela e não houver erro de compilação, blz... o SGBD irá recompilar para
ti.
Porém a procedure B ficará inválida, justamente por que vc não tem uma
dependencia
direta a tabela XX.

E como o chiappa disse, vc terá mesmo que rastear e fazer testes.... para
alcançar
o resultado. Como dica, monte uma matriz de testes e replique as pessoas
envolvidas
os resultados obtidos.

[ ]'s
Salvio Padlipskas

-----Mensagem original-----
De: jlchiappa [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 17 de novembro de 2005 11:35
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: [oracle_br] Objetos Descompilados


Friend, com certeza é verdade que o default é recompilar quando o 
objeto é executado : se isso não está acontecendo, é alguma 
particularidade no seu ambiente, por exemplo : dependências remotas 
(via dblink ou transação distribuída), OU jobs disparando e efetuando 
algum DDL ou similar que invalide, OU sinônimos envolvidos (o 
sinônimo não tem um status, está sempre válido, então se o alvo do 
sinônimo está indisponível, pro banco está tudo OK, mas na hora de 
executar não encontra o objeto), ou N+1 outras possibilidades...
 ==> O que vc TEM que fazer, já que NÂO È algo geral e genérico, é na 
próxima vez que ocorrer consultar o cara que não ficou válido após a 
execução e olhar a DBA_DEPENDENCIES tanto pra ver do que ele depende 
quanto pra ver QUEM depende dele, isso vai te dar mais pistas...

[]s

 Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Everton Dias" 
<[EMAIL PROTECTED]> escreveu
> Observem esta situação:
> 
> /* Criei uma tabela Dummy */
> CREATE TABLE teste (nome VARCHAR2(30), idade NUMBER);
> 
> /* Criei uma procedure que utiliza esta tabela. */
> CREATE PROCEDURE teste_esd
> IS
>    vnome    VARCHAR2 (30);
>    vidade   NUMBER;
> BEGIN
>    SELECT nome
>         , idade
>      INTO vnome
>         , vidade
>      FROM teste;
> END;
> /
> 
> /* Neste Momento a procedure esta VALID */
> SELECT status
>   FROM user_objects
> WHERE object_name = 'TESTE_ESD';
> 
> /* Faco uma alteracao na tabela a fim de invalidar a procedure */
> ALTER TABLE teste DROP COLUMN nome;
> 
> /* Neste Momento a procedure esta INVALID */
> SELECT status
>   FROM user_objects
> WHERE object_name = 'TESTE_ESD';
> 
> /* Volto a alteração na Tabela */
> alter table teste add (nome varchar2(30))
> 
> /* Neste Momento a procedure Continua INVALID */
> SELECT status
>   FROM user_objects
> WHERE object_name = 'TESTE_ESD';
> 
> /* executo a procedure para ver se ela vai compilar sozinha */
> exec teste_ESD;
> 
> /* Neste Momento a procedure volta para VALID */
> select Status from user_objects
> where object_name = 'TESTE_ESD';
> 
> Ou seja, na hora de execução ele compila mesmo! ... então fica no 
ar a 
> dúvida, pq algumas vezes é necessário dar um alter compile sem que 
se 
> precise alterar nenhuma linha de código ?  Algumas vezes eu tenho 
que 
> recompilar sem alterar nada, mas seguindo a lógica do teste que 
realizei 
> isso não teria muito sentido. Alguém tem idéia do porquê isso 
ocorre ? O 
> pessoal do desenvolvimento esta me cobrando isso como se fosse algo 
de 
> errado com a configuração do DB.
> 
> Quem puder ajudar eu agradeço.
> 
> 
> >From: "Ivan Ricardo Schuster" <[EMAIL PROTECTED]>
> >Reply-To: oracle_br@yahoogrupos.com.br
> >To: <oracle_br@yahoogrupos.com.br>
> >Subject: RES: RES: [oracle_br] Objetos Descompilados
> >Date: Wed, 16 Nov 2005 14:20:40 -0200
> >
> >Acredito que isto sempre acontece com operações iguais.
> >
> >Parecem semelhantes, mas um "alter table partition drop" SEMPRE 
invalida
> >objetos, enquanto que um alter table partition add" nunca invalida.
> >
> >Se voce for pensar, com um ADD, você esta adicionando uma 
partição, tudo o
> >que estava lá, continua. Já com um DROP, voce pode retirar alguma 
partição
> >que a procedure utiliza...
> >
> >É interessante fazer testes com operações bastante usuais e ver o 
que
> >acontece com cada uma...
> >
> >Não conheço nenhum documento que explique cada situação, se alguém 
souber,
> >seria interessante postar.
> >
> >-----Mensagem original-----
> >De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em
> >nome de Everton Dias
> >Enviada em: quarta-feira, 16 de novembro de 2005 14:00
> >Para: oracle_br@yahoogrupos.com.br
> >Assunto: RE: RES: [oracle_br] Objetos Descompilados
> >
> >
> >Pois é, o estranho é que as vezes alteramos objetos relacionados e 
não é
> >necessário recompilar as packages/procedures. Na realidade 
precisaria saber
> >pq algumas vezes não é necessário recompilar explicitamente e 
outras vezes
> >isso se torna necessário ?
> >
> >
> > >From: "Ivan Ricardo Schuster" <[EMAIL PROTECTED]>
> > >Reply-To: oracle_br@yahoogrupos.com.br
> > >To: <oracle_br@yahoogrupos.com.br>
> > >Subject: RES: [oracle_br] Objetos Descompilados
> > >Date: Wed, 16 Nov 2005 10:45:00 -0200
> > >
> > >Everton,
> > >
> > >Estava com problema semelhante aqui. No meu caso, tinha um job 
que 
> >apagava
> > >diariamente partições com mais de três meses. Com isso, todos 
objetos que
> > >usavam estas tabelas particionadas tornavam-se inválidos.
> > >
> > >Dica:
> > >
> > >- verifique todos os objetos (tabelas, procedures, views, 
packages, etc)
> > >que
> > >são utilizados na procedure que está ficando inválida.
> > >- consulte estes objetos na user_objects, verifique os que tem a 
coluna
> > >last_ddl_time mais recente. Provavelmente o culpado estará nesta 
lista.
> > >- verifique o que/quem alterou o ddl deste objeto e, se for um 
job, tente
> > >arruma-lo de forma a recompilar novamente após a alteração. Se 
for algum
> > >usuário, peça que o mesmo verifique o estado destes objetos ao 
alterar a
> > >ddl
> > >novamente.
> > >
> > >Sobre compilar sozinho, não sei se exite isto, se existir, 
também 
> >gostaria
> > >de saber... :)
> > >
> > >Uma sugestão é rodar um serviço que faça esta verificação e 
recompile os
> > >objetos de tempos em tempos.
> > >
> > >Boa sorte
> > >
> > >-----Mensagem original-----
> > >De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em
> > >nome de Everton Dias
> > >Enviada em: quarta-feira, 16 de novembro de 2005 10:07
> > >Para: oracle_br@yahoogrupos.com.br
> > >Assunto: [oracle_br] Objetos Descompilados
> > >
> > >Pessoal, alguém sabe me responder porque alguns objetos ficam 
inválidos e
> > >quando são executados não conseguem passar para o status de 
válido
> > >(compilação no momento da execução), sendo que não possuem erros 
e
> > >funcionam
> > >
> > >logo após se executar um "alter xxx compile" explicitamente, sem 
que se
> > >altere nenhuma linha de código. Se o objeto não contém erros pq 
o oracle
> > >não
> > >
> > >consegue compilar sozinho estes objetos no momento da execução ?
> > >
> > >_________________________________________________________________
> > >MSN Busca: fácil, rápido, direto ao ponto.  
http://search.msn.com.br
> > >
> > >
> > >
> > >-----------------------------------------------------------------
----------
> >-
> > >----------------------------------------------
> > >Atenção! As mensagens deste grupo são de acesso público e de 
inteira
> > >responsabilidade de seus remetentes.
> > >Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> > >-----------------------------------------------------------------
----------
> >-
> > >----------------------------------------------
_____________________________
> >_
> > >_______________________________________
> > >Area de download do grupo - 
http://www.4shared.com/dir/101727/a4dcc423
> > >Links do Yahoo! Grupos
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >_________________________________________________________________
> >MSN Busca: fácil, rápido, direto ao ponto.  
http://search.msn.com.br
> >
> >
> >
> >-------------------------------------------------------------------
---------
> >----------------------------------------------
> >Atenção! As mensagens deste grupo são de acesso público e de 
inteira
> >responsabilidade de seus remetentes.
> >Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> >-------------------------------------------------------------------
---------
> >----------------------------------------------
______________________________
> >_______________________________________
> >Area de download do grupo - 
http://www.4shared.com/dir/101727/a4dcc423
> >Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
> 
> _________________________________________________________________
> MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br




----------------------------------------------------------------------------
----------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
----------------------------------------------------------------------------
----------------------------------------------______________________________
_______________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos




 



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



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a