Grande Chiappa!!!  :)

 

Sim, revalidei todos os objetos que invalidaram. 

Mas é que fiquei com a dúvida...... como se tratava de uma coluna nova, não 
achei que pudesse acontecer a invalidação....mas serviu de lição e aprendizado! 
J

Obrigada à todos pelas explicações, e esclarecimentos! ;-)

Valeu!!!!!

 

Att, 

Renata

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 3 de dezembro de 2019 10:48
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] Dúvida sobre AL TER TABLE (ADD e MODIFY) - Inval 
idação de Objetos de Banco!

 

  

Renata, PMFJI mas coloco uma obs : pode ter CERTEZA de que se o objeto que 
ficou inválido não referencia diretamente a coluna alterada, ALGUMA outra 
referência indireta tem SIM : ele talvez chama uma outra rotina PL/SQL que aí 
sim referencia a coluna, ou faz um SELECT * na tabela que possui a coluna, ou 
usa um TYPE ou um REF CURSOR que acessa a coluna, enfim, algum tipo de 
dependência MESMO que indireta tinha sim, blz ??
O que EU costumo fazer é simplesmente depois de ter feito DDLs é rodar um 
script  que me LISTA os objetos que ficaram inválidos após o DDL e já mostra os 
compiles que tenho que fazer, tipo :

select 'alter '||decode(OBJECT_TYPE,'PACKAGE BODY','PACKAGE',OBJECT_TYPE)||' 
'||OWNER||'.'||OBJECT_NAME||' compile;'
from ALL_OBJECTS
where STATUS <> 'VALID'
and OBJECT_TYPE <> 'SYNONYM'
union ALL
select 'create or replace public synonym '||OBJECT_NAME||' for 
'||OBJECT_NAME||';'
from ALL_OBJECTS
where STATUS <> 'VALID'
and OBJECT_TYPE = 'SYNONYM'
/
select 'alter trigger '||OWNER||'.'||TRIGGER_NAME||' enable;'
from ALL_TRIGGERS
where STATUS <> 'ENABLED'
/


Muitas vezes essa cadeia de dependências (tipo, proc A chama proc B que usa 
TYPE T que aí sim referencia a coluna, digamos) pode FACILMENTE ficar bem 
complexa de acompanhar, então eu nem perco tempo e já compilo tudo que está 
marcado como INVÁLIDO após meu DDL, okdoc ??

[]s

  Chiappa





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

Responder a