[Dica] Objetos Inválidos no Banco

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
anderson
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 06 Jun 2005 1:08 pm
Localização: Toledo - PR
Contato:
Anderson Nuernberg
---

a query abaixo mostra os objetos inválidos no banco...

Selecionar tudo

SELECT DISTINCT u.object_name,
       decode(u.object_type,'PACKAGE BODY','PACKAGE',u.object_type) object_type,
       u.created
  FROM user_objects u
 WHERE u.status = 'INVALID'
   AND u.object_type IN ('PROCEDURE','FUNCTION','PACKAGE BODY','PACKAGE')
 ORDER BY u.created
e esta próxima compila os objetos inválidos....

Selecionar tudo

DECLARE
  CURSOR c_obj IS
    SELECT DISTINCT u.object_name,
           decode(u.object_type,'PACKAGE BODY','PACKAGE',u.object_type) object_type,
				   u.created
      FROM user_objects u
     WHERE u.status = 'INVALID'
		   AND u.object_type IN ('PROCEDURE','FUNCTION','PACKAGE BODY','PACKAGE')
     ORDER BY u.created;
  r_obj NUMBER;
BEGIN
  FOR r_obj IN c_obj LOOP
		BEGIN
      EXECUTE IMMEDIATE 'alter '||r_obj.object_type||' '||r_obj.object_name||' compile';
      dbms_output.put_line(r_obj.object_type||' '||r_obj.object_name||': COMPILADO!' );
		EXCEPTION
		  WHEN OTHERS THEN
        dbms_output.put_line('Erro Compilando '||r_obj.object_type||' '||r_obj.object_name);
	  END;
	END LOOP;
END;
[]´s

:wink:
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Outra forma de fazer isso (acho que a partir da versão 9i) é usar a DBMS_UTILITY.

Veja um exemplo:

Selecionar tudo

exec dbms_utility.compile_schema('SCOTT');
Abaixo, está a sintaxe:

Selecionar tudo

dbms_utility.compile_schema(
schema         IN VARCHAR2,
compile_all    BOOLEAN DEFAULT TRUE,
reuse_settings BOOLEAN DEFAULT FALSE);
:-o
mello
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Seg, 06 Mar 2006 5:26 pm
Localização: sp

daria para usar o dbms_utility.compile_schema por dblink ??
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes